2016-10-14 9 views
0

私はasp.netを初めてお使いになり、jQuery AjaxとASP.NET MVCを使用して無限スクロールを作成したいと考えています。だからここに、私はこれまでのところ、私はスクロールリスナーをimpementedと私はページの最後に到達するたびに、私は単にjsonデータを返す私のAPIに新たな要求を行うASP.NET Ajax geting error with code 0

<div id="container"></div> 
<div id="progress" style="display:none"> 
    <h4>Loading...</h4> 
    <div class="col-md-12 panel panel-default"></div> 
</div> 

<script type="text/javascript"> 
    var pageSize = 10; 
    var pageIndex = 0; 

    $(document).ready(function() { 
     GetData(); 

     $(window).scroll(function() { 
      if ($(window).scrollTop() == $(document).height() - $(window).height()) { 
       GetData(); 
      } 
     }); 
    }); 

    function GetData() { 
     $.ajax({ 
      type: 'GET', 
      url: 'http://localhost:64949/api/values/delfi', 
      dataType: 'json', 
      success: function(data) { 
       alert("yra"); 
       //if (data != null) { 
       // for (var i = 0; i < data.length; i++) { 
       //  $("#container").append("<h2>" + 
       //  data[i].CompanyName + "</h2>"); 
       // } 
       // pageIndex++; 
       //} 
      }, 
      beforeSend: function() { 
       $("#progress").show(); 
      }, 
      complete: function() { 
       $("#progress").hide(); 
      }, 
      error: function(jqXHR, exception) { 
       var msg = ''; 

       if (jqXHR.status === 0) { 
        msg = 'Not connect.\n Verify Network.' + jqXHR.responseText; 
       } else if (jqXHR.status == 404) { 
        msg = 'Requested page not found. [404]' + jqXHR.responseText; 
       } else if (jqXHR.status == 500) { 
        msg = 'Internal Server Error [500].'; 
       } else if (exception === 'parsererror') { 
        msg = 'Requested JSON parse failed.'; 
       } else if (exception === 'timeout') { 
        msg = 'Time out error.'; 
       } else if (exception === 'abort') { 
        msg = 'Ajax request aborted.'; 
       } else { 
        msg = 'Uncaught Error.\n' + jqXHR.responseText; 
       } 

       alert(msg); 
      } 
     }); 
    } 
</script> 

得たものです。 localhost:64949/api/values/delfi、まだ同じ応答を得る:ここではそれは

[{"Index":1,"List":{"Img":"http://g1.dcdn.lt/images/pix/jonas-udris-72559208.jpg","Title":"J. Udris. Scenarijai dėl Šilutės balsavimo reikalų","Description":"Policijai pradėjo ikiteisminį tyrimą dėl galimo rinkėjų papirkimo Šilutės rajone partijos „Tvarka ir teisingumas naudai. Ketvirtadienį policija pranešė sulaikiusi septynis asmenis, antradienį jų namuose atliktos kratos. Vienas asmuo suimtas 10 parų."}}] 

を返すものだ私も、このURLのようなURLを渡すためにしようとただし、すべての時間が私のAJAX機能をエラーにジャンプし、jqXHR.statusは常に0です。私のコードに何が問題なのですか?

+0

ブラウザからhttp:// localhost:64949/api/values/delfiを開くことはできますか? – Imad

+0

@ImadYes、私は実際に私の質問である 'json'データをブラウザウィンドウからコピーします – David

答えて

1

URLをハードコードしないでください。 あなたはコントローラーを使用する場合は、あなたが行くことができる:あなたのAPIにリンクするための

url: '@Url.Action("Action", "Controller")', 

、あなたがAttribute Routing

をご覧くださいクイックフィックスは次のようになります。

url: '/api/values/delfi', 

編集:@それは本当にopsの質問には答えがありません。ステータスコード0はリクエストされたURLに到達できないことを意味します。したがって、上記のコードでURLを編集することです!

+0

これは答えですか? – Imad

+0

答えがありがとうございます。しかし、2つの別々のプロジェクトがあるとどうなりますか? 1つはAPI用、もう1つはウェブページ用です。そして、私のウェブページはapiを要求しなければなりません。 (両方のプロジェクトのポート番号が異なります)。その後、この答えはうまくいかず、私は404 – David

+0

をWCFで検索します。 またはこれはhttps://www.asp.net/web-api/overview/getting-started-with-aspnet-web-apiです/ tutorial-your-first-web-api – Bene