微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery对跨域Web服务的ajax调用

如何解决jQuery对跨域Web服务的ajax调用

| 我想使用jquery从客户端使用跨域Web服务
function TestService() {
    $.ajax({
        url: \"http://service.asmx/GetGeoCompletionList\",data: { \"prefixText\":\"eka\",\"count\":\"10\",\"contextKey\":\"Trace_0$Rus\" },dataType: \"jsonp\",type: \"GET\",contentType: \"application/json; charset=utf-8\",success: function (data) {
            alert(data);
        },error: function (XMLHttpRequest,textStatus,errorThrown) {
            alert(XMLHttpRequest.statusText);
        }
    });
}
错误处理程序中,我有: textStatus =
parseerror
XMLHttpRequest的状态为“ 2”,readyState为“ 3” 错误抛出为
jQuery16103495572647140...78197139 was not called
我已经花了很多小时,却无法正常工作。你能帮我吗? 更新 谢谢,我更改为GET,并修复了我的数据字符串。 服务返回有效的JSON对象。我可以在使用此服务的其他站点的Firebug上看到它。但是该站点正在使用通用的json(因为它具有一个域)。 因此,如果Web服务返回有效的JSON(而不是jsonp),那么我不能对jsonp使用相同的方法吗?从其他域转换json Web服务该怎么办?     

解决方法

问题摘要: 确保您使用的是有效的JSON 正如@Quentin所提到的。 确保您正在使用GET请求,例如 提到@lonesomeday 确保来自服务器的响应是 JSONP,如此处所示     ,您传递并声明为JSON的字符串不是JSON。 只能使用“ 5”个字符来引用字符串。 另外,您无法发出跨域JSON-P POST请求。     ,您不能使用JSONP进行跨域POST请求。 JSONP通过向页面添加“ 6”标签来工作。
script
标记始终使用GET HTTP请求获取其源代码。您不会发布任何数据。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。