jquery ajax代码可以从另一个域名或其他网站调用web服务吗?
像这样:
$.ajax({
type: "POST",
url: "http://AnotherWebSite.com/WebService.asmx/HelloWorld",
data: "{'name':'" + $('#price').val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {alert(msg);}
});
我应该如何配置这个网络服务?
答案 0 :(得分:7)
您可以使用JSONP发出跨域请求。使用jquery,您可以使用$ .json函数发出jsonp请求,并在url中指定回调,如下所示:
&callback=?
实际上,你需要的只是问号作为参数值,参数名称可以是任何东西。
只有捕获,是您发出请求的服务器必须支持jsonp
有关更深入的信息,请参阅此博客文章,了解如何使jsonp与纽约时代json api一起使用:
http://notetodogself.blogspot.com/2009/02/using-jquery-with-nyt-json-api.html
答案 1 :(得分:1)
您需要使用JSONP调用。关于此page的最后两段。了解基础知识。
答案 2 :(得分:0)
由于Same origin policy,大多数浏览器都禁止对其他域发出请求。
一些例外是
答案 3 :(得分:0)
不,从您的代码来源之外的Web服务器请求某些内容是所谓的Cross Site Scripting (XSS)攻击的基础。因此,这种能力是被禁止的。有各种各样的方法,但它们充其量只是hacky。
我最常听到的是编写一个与相关服务器建立TCP连接的Flash应用程序。
答案 4 :(得分:0)
通常做的是让您的jQuery在您的服务器上调用Web服务,并让该Web服务与外部Web服务进行通信。不是最受欢迎的方法,但它有效。