一尘不染

禁止对飞行前403的响应

ajax

我一直在尝试向iron- ajax服务器发布一个简单的帖子,但是在预检调用中总是失败。对于我的一生,我不知道发生了什么,所有CORS标头在服务器上似乎都是正确的。

Response headers

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Methods:GET, POST, PUT, OPTIONS
Access-Control-Allow-Origin:*
cache-control:must-revalidate, private, no-cache, no-store, max-age=0
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:138
Content-Type:text/html

Request headers

Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive

该请求确实是从本地主机发出的,但我认为*应该由本地来处理。

控制台中显示的错误是: OPTIONS https://... 403 (Forbidden)

XMLHttpRequest cannot load https://.... Response for preflight has invalid HTTP status code 403

任何帮助/建议表示赞赏。


阅读 165

收藏
2020-07-26

共1个答案

一尘不染

403响应状态表示服务器后端没有配置为处理OPTIONS请求,而不仅仅是CORS预检OPTIONS请求是一个普遍问题。

服务器必须以OPTIONS2xx成功状态(通常为200或204)响应请求。

如果服务器不执行此操作,Access- Control-*则配置了要发送的标头没有区别。配置服务器以OPTIONS正确方式处理请求(发送200或204成功消息)的答案取决于它所运行的服务器软件

2020-07-26