[英]JQuery ajax call to cross-domain webservice
我想使用 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 的状态为200
和 readyState 4
errorThrown 是jQuery16103495572647140...78197139 was not called
我已经花了很多时间在它上面,但无法让它工作。 你能帮我吗?
更新
谢谢,我更改为 GET,并修复我的数据字符串。
服务返回有效的 JSON object。 我可以在使用此服务的其他站点上的 firebug 上看到它。 但是该站点正在变得通用 json(因为它有一个域)。
那么,如果网络服务返回有效的 JSON(不是 jsonp),我不能对 jsonp 使用相同的方法吗? 我可以从其他域使用 json Web 服务做什么?
您传递并声明的字符串是 JSON 不是 JSON。
只有"
字符可以用于引用字符串。
此外,您不能发出跨域 JSON-P POST 请求。
您不能使用 JSONP 进行跨域 POST 请求。 JSONP 通过向页面添加script
标签来工作。 script
标签总是使用 GET HTTP 请求来获取它们的源代码。 您不会收到任何发布的数据。
问题总结:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.