我是asp.net的新手,我想使用jQuery Ajax和ASP.NET MVC创建无限滚动。所以这里;到目前为止我得到了什么
<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>
我对滚动侦听器进行了修改,每当我到达页面末尾时,我都会向我的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跳转到error函数并且jqXHR.status总是为0.我也尝试传递url,就像这个url:localhost:64949/api/values/delfi
一样,仍然得到相同的响应。我的代码出了什么问题?
答案 0 :(得分:1)
您不应该对网址进行硬编码。 如果你使用控制器,你可以去:
url: '@Url.Action("Action", "Controller")',
要链接到您的API,您应该查看Attribute Routing
快速修复可能是:
url: '/api/values/delfi',
编辑:@lmad确实没有回答操作问题我很抱歉。状态代码0表示请求的网址无法访问,因此我要做的就是使用上面的代码编辑网址!