Jquery 为什么是$.ajax()';错误';响应状态为200/OK时调用函数?
我正在尝试使用JQuery$.ajax()从我的WebAPI“获取”数据。这是我的密码:Jquery 为什么是$.ajax()';错误';响应状态为200/OK时调用函数?,jquery,asp.net-web-api,jsonp,Jquery,Asp.net Web Api,Jsonp,我正在尝试使用JQuery$.ajax()从我的WebAPI“获取”数据。这是我的密码: $.ajax({ type: "GET", url: "http://localhost:62412/api/RandomData?startTime=2013-02-23%2005%3A00%3A00&callback=?", dataType: "j
$.ajax({
type: "GET",
url: "http://localhost:62412/api/RandomData?startTime=2013-02-23%2005%3A00%3A00&callback=?",
dataType: "jsonp",
success: function (data) {
alert("success");
},
error: function (errorData) {
alert("fail");
}// When Service call fails
});
我可以看到WebAPI工作正常并成功返回数据。但在客户端,我总是收到“失败”警报。我可以在firebug中看到数据
有人能告诉我为什么在响应状态为“200”时调用“error”函数吗?如果下载的数据不是有效的json数据并且可以正确解析,$.ajax调用可能会失败 更改错误回调并检查错误消息:
error: function (data, msg) {
console.log(msg)
}
返回的代码不是JSONP。它是简单的JSON 在jsonp中,服务器必须返回JSON对象作为函数的参数,名称作为回调参数提供 在您的配置中,如果发送到服务器的回调参数为“example”,则服务器必须使用
example( json code here )
不仅仅是
json code here
就像现在一样
使用
$.ajax
函数,您不必在客户端指定回调函数名,但服务器必须尊重它。是的,这是“parseerror”。但是我检查了我的JSON,它是有效的。还有什么会导致此错误?服务器未调用回调函数。接收到的负载应该类似于回调函数([JSON_DATA])。检查此链接()您可以发布服务器返回的数据吗?[{“ID”:“002940”,“Name”:“William”,“Latitude”:31.56,“Longitude”:-87.0},{“ID”:“002940”,“Name”:“Brian”,“Latitude”:31.56,“Longitude”:-86.98}]这是我从服务器获取的JSON。请看,在获取数据时我必须使用JSONP“Access Control Allow Origin不允许Origin null。”错误。我认为我的错误原因是我没有“托管”网页。我只是用浏览器打开的。因此,JSON工作正常。感谢您的帮助。