Access-Control-Allow-Origin
)。我现在入侵了我的API,以强制将状态代码始终设置为200,但是我正在寻找一种长期的解决方案。为什么我的用Symfony 4构建的API不能以OK状态响应?
答案 0 :(得分:1)
您可以使用https://github.com/nelmio/NelmioCorsBundle->易于配置
nelmio_cors:
defaults:
allow_credentials: false
allow_origin: []
allow_headers: []
allow_methods: []
expose_headers: []
max_age: 0
hosts: []
origin_regex: false
forced_allow_origin_value: ~
paths:
'^/api/':
allow_origin: ['*']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
'^/':
origin_regex: true
allow_origin: ['^http://localhost:[0-9]+']
allow_headers: ['X-Custom-Auth']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE']
max_age: 3600
hosts: ['^api\.']
要手动回复,您可以阅读https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request
中的定义->它基本上声明一个Option请求将至少包含3个标头:
要使请求成功,您必须通过返回以下内容为空的响应来响应该请求:
或非2xx状态(如果应拒绝cors请求)
答案 1 :(得分:0)
由于预检请求使用OPTIONS请求方法,因此很可能您的网络服务器未设置为直接支持它们-默认情况下,许多服务器仅支持GET,POST和HEAD。
如果是这种情况,则可能就像更改标志以允许OPTIONS请求一样简单。好了,并且还返回了正确的CORS响应标头...