我想使用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,并修复了我的数据字符串。
Service返回有效的JSON对象。我可以在其他网站上的firebug上看到它,它使用这项服务。但该网站正在获得普通的json(因为它有一个域)。
那么,如果web服务返回有效的JSON(而不是jsonp),我不能使用与jsonp相同的方法?如何从其他域获取json web-service?
答案 0 :(得分:3)
您传递和声明的字符串是JSON不是JSON。
只能使用"
个字符来引用字符串。
此外,您无法进行跨域JSON-P POST请求。
答案 1 :(得分:3)
您无法使用JSONP执行跨域POST请求。 JSONP的工作原理是向页面添加script
标记。 script
标记始终使用GET HTTP请求获取其源。你不会发布任何数据。
答案 2 :(得分:2)
问题摘要: