Jquery ajax()函数始终返回错误

Jquery ajax()函数始终返回错误,jquery,Jquery,朋友们,我在这里迷路了 我有这个WCF Rest服务以json格式返回数据: 我可以使用asp.net web表单应用程序访问它,也可以使用Windows Phone应用程序访问它。但我不能让它在一个简单的jQuery.$Ajax()调用下工作。我的jQuery总是返回一个错误。如果你看看我的代码,你会发现我有一个捕捉错误的函数 以下是我正在使用的脚本: 我已经用Fiddler进行了测试,它显示HTTP响应为200(ok),甚至还显示返回的json数组,如下所示: HTTP/1.1 200 OK

朋友们,我在这里迷路了

我有这个WCF Rest服务以json格式返回数据:

我可以使用asp.net web表单应用程序访问它,也可以使用Windows Phone应用程序访问它。但我不能让它在一个简单的jQuery.$Ajax()调用下工作。我的jQuery总是返回一个错误。如果你看看我的代码,你会发现我有一个捕捉错误的函数

以下是我正在使用的脚本:

我已经用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
-xhr状态,是否已初始化,这意味着用户处于脱机状态

在执行跨站点脚本编写(访问被拒绝)或请求无法访问的URL(打字错误、DNS问题等)时,您将看到状态为0。


状态===0
-xhr状态,是否已初始化,这意味着用户处于脱机状态


当执行跨站点脚本编写(访问被拒绝)或请求无法访问的URL(打字错误、DNS问题等)时,您将看到状态为0。

问题是跨站点脚本编写。这可以通过使用
'jsonp'
作为数据类型轻松解决。 然后将网站更改为使用已添加到调用中的“?callback=”并将其包装在json上。例如,如果
callback='test'

test('[{"Nome":"AGUAS DE LINDOIA","Uf":"SP"},{"Nome":"AMERICANA","Uf":"SP"},{"Nome":"AMPARO","Uf":"SP"}]')

问题是跨端脚本。这可以通过使用
'jsonp'
作为数据类型轻松解决。 然后将网站更改为使用已添加到调用中的“”回调=”,并将其包装在json中。例如,如果
callback='test'

test('[{"Nome":"AGUAS DE LINDOIA","Uf":"SP"},{"Nome":"AMERICANA","Uf":"SP"},{"Nome":"AMPARO","Uf":"SP"}]')

请记住,如果调用是跨域的,则必须使用jsonp!请记住,如果调用是跨域的,则必须使用jsonp!用户确实必须使用JSONP。基本上,这是以函数调用的方式包装返回的JSON。用户实际上必须使用JSONP。基本上,这是以函数调用的方式包装返回的JSON。朋友们,真的非常感谢!在使用WCF 4时,我只需更改web.config以接受交叉端([link]),当然,还要使用jsonp。再次感谢!朋友们,真的谢谢你们!在使用WCF 4时,我只需更改web.config以接受交叉端([link]),当然,还要使用jsonp。再次感谢!