我从一台服务器向服务器发出请求(API调用),它是跨域资源,因此我希望有选项请求。 对于选项请求,我将获得以下响应头:
access-control-allow-headers: 'all headers I sent'
access-control-allow-methods: GET,OPTIONS
access-control-allow-origin: *
content-length: 0
content-type: application/json
date: Mon, 19 Nov 2018 09:14:32 GMT
status: 200
x-amz-apigw-id: some id
x-amzn-requestid: 'some id'
响应头返回时:
access-control-allow-origin: *
我收到一个错误:
在以下位置访问XMLHttpRequest 来自来源“ http://localhost:4200”的“ APIURL”已被CORS政策阻止: 请求标头字段X-Application不允许 飞行前响应中的Access-Control-Allow-Header。
那为什么没有用方法请求?
对于同一服务器,具有相同选项响应的另一个API与get方法一起使用。
我正在使用angular7,后端服务器已启用CORS。
有人可以指导我为什么会发生这种情况吗,我可以做出哪些改变?
谢谢!
更新:
根据“ sideshowbarker”中的注释,我从请求标头中删除了X-APPLICATION标头。但是对于2个API而言,仍然低于错误以下的错误,而从相同来源到同一服务器的其他API可以正常工作:
- 从源访问“ APIURL服务器1”上的XMLHttpRequest “ http://localhost:4200”已被CORS政策屏蔽:对 预检请求未通过访问控制检查:否 请求中存在“ Access-Control-Allow-Origin”标头 资源。 -来自本地主机的Server1
- 在以下位置访问XMLHttpRequest “ API URL服务器2” 来自来源“ http://localhost:4200”的信息已被CORS政策阻止: 对预检请求的响应未通过访问控制检查: 没有HTTP正常状态。
如果服务器配置为处理CROSS原始请求,那么我应该不会收到此错误。如果有人帮助我理解并解决此问题,我将不胜感激。 如果有人需要帮助,请告诉我是否需要更多详细信息。 谢谢!