如何绕过使用ASP.NET和Ajax的CORS策略?

时间:2015-06-03 00:58:36

标签: c# jquery asp.net ajax xml

我想从其他域绕过 CORS政策 GET 数据 XML 。我尝试了很多,但没有运气。有:

  • JSONP :通过这种方式,我不知道如何使用它。因为XML构造与JSONP构造不同。如果是,请帮助我如何使用JSONP从另一个域获取数据XML。
  • 代理:我的项目的原因是ASP.NET Framework 4.0。因此,我创建了一个代理页面并使用它来获取XML。示例:http://localhost:4030/proxy.aspx?u=http://onotherdomain.com/data.xml。但我无法通过基本受保护站点获取数据。它总是返回401未经授权。

对你而言,JSONP更快或代理更快?

感谢收看?

1 个答案:

答案 0 :(得分:1)

如果其他域没有明确信任您,除非您使用JSONP,否则出于安全原因无法通过AJAX从客户端调用它。

但是,只要您只遵守GET请求并且服务器知道如何使用JSONP格式的响应进行响应,您就只能使用JSONP。

另一方面,如果他们明确信任你,你有几个选择。

  • 只要您使用适当的标头使用现代浏览器(IE9仍有问题),服务器上的CORS支持。
  • XDomain,本质上是一个javascript代理填充程序。但是,这也需要明确请求域包含。

另一方面,如果您在终端上创建可以调用其他域的代理服务器端,则不会出现任何问题。

理论上,服务器端代理总是应该比ajax选项慢,因为你要进行两次调用而不是一次。