朋友们,我迷失在这里。
我有这个WCF Rest服务以json格式返回数据:http://189.126.109.249/ieptb/Cidades?uf=SP
我可以使用asp.net Web表单应用程序访问它,我也可以使用Windows Phone应用程序访问它。但是我没有让它在一个简单的jQuery下工作。$ Ajax()调用。我的jQuery总是返回一个错误。如果您查看我的代码,您会看到我有一个捕获错误的功能。
以下是我正在使用的脚本:http://jsfiddle.net/n6sLQ/4/
我已经用Fiddler测试了,它告诉我HTTP响应是200(ok),即使它显示我返回的json数组,如下所示:
HTTP/1.1 200 OK
Via: 1.1 CM-SRV03
Connection: Keep-Alive
Proxy-Connection: Keep-Alive
Content-Length: 2360
Date: Tue, 29 Nov 2011 13:02:44 GMT
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
Cache-Control: private
[{"Nome":"AGUAS DE LINDOIA","Uf":"SP"},{"Nome":"AMERICANA","Uf":"SP"},{"Nome":"AMPARO","Uf":"SP"}]
我不知道我的jQuery有什么问题...
$.ajax({
url: "http://189.126.109.249/ieptb/Cidades?uf=SP",
contentType:"application/json",
dataType: "json",
error: function (x, e) {
if (x.status === 0) {
alert('You are offline!!\n Please Check Your Network. ' + x.reponseText);
}
else if (x.status == 404) {
alert('Requested URL not found.');
} else if (x.status == 500) {
alert('Internel Server Error.');
} else if (e == 'parsererror') {
alert('Error.\nParsing JSON Request failed.');
} else if (e == 'timeout') {
alert('Request Time out.');
} else {
alert('Unknow Error.\n' + x.responseText);
}
},
success: function (cidades) {
// $.each(cidades, function (indice, cidade) {
// alert(cidade.Nome + ": " + cidade.Uf);
// });
}
});
有人有点想法吗?
答案 0 :(得分:0)
Link for the description
status === 0
- xhr状态,是否已初始化,表示用户处于离线状态。
当执行跨站点脚本(访问被拒绝)或请求无法访问的URL(错误,DNS问题等)时,您将看到状态为0.
答案 1 :(得分:0)
问题在于跨端脚本。使用'jsonp'
作为dataType可以轻松修复此问题。
然后更改网站以使用已添加到调用中的“?callback =”并将其包装在json周围。例如,如果callback = 'test'
test('[{"Nome":"AGUAS DE LINDOIA","Uf":"SP"},{"Nome":"AMERICANA","Uf":"SP"},{"Nome":"AMPARO","Uf":"SP"}]')