【问题标题】:cross domain ajax post request跨域ajax post请求
【发布时间】:2012-04-15 11:39:27
【问题描述】:

我可能遗漏了一些东西,但直到现在还没有弄明白。

我有一个 MVC 应用程序,它侦听 web 默认端口(即 80),在与用户交互结束时,它向侦听端口的 WCF 4 REST 服务发送一个 ajax 发布请求(使用 jquery) 90,可悲的是,由于浏览器同源策略安全问题,我不允许这样做。

我了解到 Chrome、Safari 和 firefox 默认支持允许跨域请求的 CORS 协议。

在我的服务器中,我在响应的标题中添加了以下内容:Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers 和 Access-Control-Max-Age。

据我所知,所有 cors 插件都处理 microsoft xdr 对象并且不会更改 xhr 默认行为。

如有任何帮助,将不胜感激,

谢谢,

罗恩

【问题讨论】:

  • 添加 Access-Control-Allow-Origin 标头应该可以工作,并且必须从侦听端口 90 的服务发送(只是为了确保)。

标签: ajax wcf cross-domain http-post


【解决方案1】:

嗨,stete,感谢您的回复,将标头添加到服务响应中并没有解决问题。 但以下做了(Cors 解决方案):

a) 我正在使用 jquery v 1.5.1,发现有人报告了与跨域请求相关的错误,该错误已在更高版本中修复。

b) 在服务 web 配置中,我已经标记了以下内容:

 <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*"/>
    <add name="Access-Control-Allow-Headers" value="Content-Type"/>
   </customHeaders>
</httpProtocol> 

此 sln 仅适用于支持 CORS 协议(即非 IE)的浏览器,因为我们可以使用 easyxdm。

最终,我决定不向用户公开我的服务,而是通过 UI。

谢谢,

罗恩

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 2012-05-10
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多