如何在不使用XDomainRequest或XMLHttpRequest的情况下使用自定义标头进行跨域请求

How can I make cross-domain requests with custom headers without using XDomainRequest or XMLHttpRequest?

本文关键字:请求 自定义 XDomainRequest XMLHttpRequest 情况下      更新时间:2023-09-26

我有一个从www.example.com交付的单页web应用程序。此web应用程序

  • 需要对另一个名为api.example.com的服务器发出AJAX请求
  • 当向api.example.com发送请求时,它必须设置某些头字段,如Authorization
  • 它必须与最新和不太新的浏览器兼容(例如IE>=8)

所有这些都是通过使用XMLHttpRequest在api.example.com上使用Chrome(以及其他最近基于WebKit的浏览器)处理CORS请求来实现的。版本10以前的IE没有为XMLHttpRequest实现CORS,而是为跨域请求提供了非标准的XDomainRequest对象。但是XDomainRequest没有实现设置HTTP头字段的方法。

所以我的问题是:在不使用XDomainRequestXMLHttpRequest的情况下,如何使用自定义标头进行跨域请求?最佳实践变通方法是什么?

编辑:我可以控制所有涉及的服务器(*.example.com)。

恐怕没有其他方法,只能在应用程序的服务器端实现此请求的代理。一个例子。