我正在构建一个Angular 2应用程序,需要向服务器发送带有基本身份验证(https://en.wikipedia.org/wiki/Basic_access_authentication)的CORS(跨域资源共享)POST请求。
我很好地为POST请求本身设置了Authorization标头,但由于它是CORS,浏览器首先自动发送预检OPTIONS请求。 不幸的是,服务器配置错误(Why does the preflight OPTIONS request of an authenticated CORS request work in Chrome but not Firefox?)并且在预检中也需要基本身份验证。它是第三方服务器,我无法改变它。
有没有办法克服它(例如将Authorizion标题添加到预检,禁用预检,......)?
答案 0 :(得分:3)
预检请求仅由浏览器进行,以检查是否设置了CORS标头。如果它没有获得所需的标题,那么你无能为力。它不会发出实际的POST请求。
您实际可以做的是从您控制的服务器发出请求。为您的客户端提供API以调用您的服务器,然后调用错误配置的服务器并将响应转发给您的浏览器客户端。