我正在尝试从jQuery客户端访问wcf服务
具体来说,此示例 http://www.codeproject.com/KB/aspnet/WCF_JQUERY_ASMX.aspx#4
当客户端网页与服务位于同一域时,所有方法都可以正常工作
一旦我将客户端网页移到另一个域,它就会中断。无法到达服务,请求失败
所有示例(ASMX,REST和WCF)都会发生这种情况
任何想法如何使这个跨岛工作?
您正在违反同源策略。您正在访问的Web服务必须与发出请求的jQuery脚本位于同一域中。所有浏览器都实施此策略,以防止(例如)对Web应用程序进行跨站点脚本编写和代码注入攻击。
围绕它有多种方法,包括JSONP,代理或Flash。
在建议您应该使用哪种技术之前,我们需要更多信息。我倾向于JSONP。但是与此同时,这里有一些轻松的阅读:
http://taossa.com/index.php/2007/02/08/same-origin- policy/
https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript
这是JSONP的使用示例:
url = "http://www.test.com/getData.php?callback=parseResults"; document.body.appendChild((function() { var newScript = document.createElement("script"); newScript.type = "text/javascript"; newScript.src = url; return newScript; })()); function parseResults(data) { alert(data); }