JavaScript – 使用jQuery AJAX的WCF REST – 删除/处理相同的原始策略

前端之家收集整理的这篇文章主要介绍了JavaScript – 使用jQuery AJAX的WCF REST – 删除/处理相同的原始策略前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我试图创建一个由jQuery调用的C#WCF REST服务.我发现jQuery要求 AJAX调用是在同一起源策略下进行的.我有几个问题,我可以如何进行.

我已经知道了
JSONP与服务器回调的恶意解决方
2.拥有跨域代理的服务器开销太多.
3.在浏览器中使用Flash进行调用,并在我的WCF服务器根目录下设置crossdomain.xml.

我宁愿不使用这些因为
我不想使用JSON,或至少我不想限制使用它
2.我想将服务静态页面的服务器与服务应用程序状态的服务器分开.
这个时代的闪光是不成问题的.

我在想什么:有什么像Flash的crossdomain.xml文件可用于jQuery?这个“同源”策略是否是jQuery的一部分,还是特定浏览器的限制?如果它只是jQuery的一部分,也许我会尝试挖掘代码解决它.

编辑:
Shreddd得到了很多地方,见下文.要做到这一点在C#我创建了以下方法,您的所有服务方法需要调用

private void BypassCrossDomain()
{
  WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin","*");
}

请注意,这允许跨站点脚本攻击,当您需要发送第三方cookie时,您也不能使用“*”.

解决方法

您还可以考虑分出一个额外的HTTP头,以便在您的Web服务上启用跨域请求.

这里描述:

http://www.w3.org/TR/cors/

https://developer.mozilla.org/en/HTTP_access_control

因此,如果您将以下标题添加到Web服务提供的任何内容中:

Access-Control-Allow-Origin: *

浏览器将允许对该Web服务的跨域请求.在大多数现代浏览器(ff 3.5,IE 8,safari 4)中都支持这一点,并且似乎非常适用于托管在foo.com的jquery应用程序,该应用程序将ajax调用到bar.com

猜你在找的Ajax相关文章