0

例如,如果 Twitter 的 API 允许 Puts 和 Posts(我不确定是否允许),他们是否只是在他们的末端启用了 CORS?

但 IE 9 及更低版本不处理 CORS。

那么这些浏览器能干脆不使用直接从 JS 调用 twitter API 的网站吗?

4

1 回答 1

1

IE9 及更低版本不支持 CORS 的解决方法之一XMLHttpRequest是 Microsoft 自己专有的XDomainRequest. 虽然它在某些方面类似于XMLHttpRequest,但它的功能有很多限制。其中一些包括(来源):

  • 只允许GETPOST请求(即不允许PUT,DELETE等)
  • 只能使用 HTTP 和 HTTPS 协议(大多数时候不是主要问题)
  • 即使设置了正确的跨域标头,请求仍必须使用相同的协议方案(即不允许 HTTP -> HTTPS,反之亦然)
  • 不能修改请求标头,也不能设置新标头
  • Content-Type头不是由 IE 设置的
  • 不会随请求发送任何 cookie
  • 如果您的网站位于 Intranet 上,它将无法访问 Internet 资源

由于XMLHttpRequest是执行跨域请求的首选方法,jQuery 等库XDomainRequest默认不支持 (that has been requested 和 denied,但是有许多替代项目提供此功能,例如:

如果这些限制太多,另一种选择是在客户端和跨域站点之间在您的服务器上设置一个代理(当然,这应该只在需要时进行,因为这会占用您服务器的带宽和数据使用)。

于 2013-12-19T01:05:41.677 回答