2016-10-14 56 views
0

我對asp.net毫無新意,我想用jQuery Ajax和ASP.NET MVC創建無限滾動。所以在這裏,是我走到這一步,ASP.NET Ajax代碼爲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> 

我impemented滾動收聽我每次到達頁面的結束時間,我讓我的API,它只是返回json數據的新要求。下面是它返回

[{"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ų."}}] 

但是每一個我的ajax跳轉到誤差函數和jqXHR.status始終是0。我也試圖通過URL這樣的URL時間:localhost:64949/api/values/delfi,仍然得到同樣的反應。我的代碼有什麼問題?

+0

你可以通過瀏覽器打開http:// localhost:64949/api/values/delfi嗎? – Imad

+0

@ImadYes,我實際上'json'數據是我的問題是從瀏覽器窗口複製 – David

回答

1

您不應該對URL進行硬編碼。 如果你使用一個控制器,你可以去:

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

鏈接到你的API,你應該看看Attribute Routing

速戰速決可能是:

url: '/api/values/delfi', 

編輯:@ lmad這確實沒有答案ops問題,我很抱歉。狀態碼0意味着請求的url無法訪問,所以我要做的就是用上面的代碼編輯url!

+0

這是一個答案? – Imad

+0

感謝您的答案,但如果我有兩個獨立的項目呢?一個用於API,一個用於網頁。我的網頁應該提出api請求。 (兩個項目端口號都不相同)。然後這個答案不起作用,我得到404 – David

+0

查找WCF然後.. 或者這:https://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api /教程你先網上API – Bene