javascript - 对 WCF 服务的跨站点 ajax 调用

标签 javascript wcf json cross-site

是否可以在 Javascript 中对 WCF 服务进行跨站点调用?

我不介意它是 POST 还是 GET。

但我听说最近,浏览器不允许使用 POST 或 GET 进行跨站点调用。

如何避免这种情况并仍然调用 WCF 服务

最佳答案

要绕过浏览器的跨站点脚本拦截器,您无能为力。这些阻止程序阻止 XMLHTTPRequest 发生在除加载包含脚本或页面的域之外的任何域中。

也就是说,有一种常用的解决方法:使用 JavaScript 在 DOM 中写入一个新条目,该条目引用作为跨站点 URL 的 src。您会将所有 RPC 方法参数传递给此“脚本”,该“脚本”将返回一些将要执行的 JavaScript,告诉您成功或失败。

无法以这种方式执行 POST,src URL 必须是 GET,因此您可以通过这种方式传递参数。我不确定 WCF 是否具有“仅获取”访问方法。而且,由于浏览器期望远程标记的结果是有效的 JavaScript 对象,因此您必须确保您的 WCF 服务也遵守这一点,否则您将收到 JavaScript 错误。

另一种规避跨站点脚本的常用方法是为您的请求编写代理。换句话说,如果您想从 example.com 上托管的脚本访问域 test.com,请在 example.com 上创建一些 URL,以正确的方式将请求代理到 test.com。

对于您的示例,代理可能是正确的答案,假设 WCF 没有它自己的跨站点脚本限制。

关于javascript - 对 WCF 服务的跨站点 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/555595/

相关文章:

json - 如何在 PySpark 中保存从 URL 获取的 JSON 数据?

php - LinkedIn OAuth 缺少必需的参数 "client_id"

javascript - (Javascript) 按钮没有更新

php - Jquery:在没有网络服务器的情况下在本地运行 AJAX

javascript - React - 无法使用 promise 渲染组件

.net - 是否可以连接到 WCF 缓存提供程序?

WCF单元测试

javascript - 通过数组访问时未调用 addEventListener() 方法

c# - 使用 Powershell 调用 WCF 服务方法

mysql - Rails with mysql无法创建json类型列