jquery - 从 jQuery 访问 Web 服务 - 跨域

标签 jquery ajax wcf json cross-domain

我正在尝试从 jQuery 客户端访问 WCF 服务

具体来说这个例子 http://www.codeproject.com/KB/aspnet/WCF_JQUERY_ASMX.aspx#4

当客户端网页与服务位于同一域时,一切正常

一旦我将客户端网页移动到另一个域,它就会崩溃。无法到达服务,请求失败

所有示例、ASMX、REST 和 WCF 都会发生这种情况

有什么想法可以让这个跨域工作吗?

最佳答案

您遇到了同源策略。您正在访问的 Web 服务必须与发出请求的 jQuery 脚本驻留在同一域中。所有浏览器都强制执行此策略,以防止针对 Web 应用程序的跨站点脚本攻击和代码注入(inject)攻击。

有多种解决方法,包括 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);
}

关于jquery - 从 jQuery 访问 Web 服务 - 跨域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697557/

相关文章:

c# - 将 JQuery 转换为 ForEach() 循环会引发错误

jquery - 移动设备上缺少导航栏内容

javascript - 保护 ajax 数据以供提交

c# - IIS 的 WCF 服务宿主,spring.net 范围 ="request"

.net - 在使用 MVVM 设计模式的 WPF 应用程序中使用 WCF 服务作为模型

html - 关于 Bootstrap 崩溃的问题及其对 DOM 的影响

java - 使用 jQuery 使用 Java RESTful webservice

javascript - 当用户将鼠标悬停在图像上时,如何向用户实时显示图像上的 (x,y) 坐标?

python - 使用带有 Python Flask 的 AJAX 将 html 插入模板

wcf - 请求/响应消息传递模式 - Azure 服务总线