执行ajax请求时收到以下错误消息
XMLHttpRequest cannot load. Request header field password is not allowed by Access-Control-Allow-Headers in preflight response.
我使用以下作为dojo的标题:
'Authorization': 'Bearer ' + this.data.token,
'X-Requested-With': null,
'If-None-Match': null,
'Password': this.data.oneTimePassword
Chrome下方的响应标头图片。
我想知道:
您能否确认问题与不包含自定义标题Access-Control-Allow-Headers
的{{1}}有关?
如果端点应仅支持方法GET,我的响应标头中的password
是否正确,则不应只是Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS
?
目前我正在使用Access-Control-Allow-Methods: GET
,但我认为问题与API有关,而不是与dojo本身有关。
答案 0 :(得分:1)
“问题是否与Access-Control-Allow-Headers有关,不包含自定义标题密码?
是。错误消息明确说明。
如果端点应仅支持方法GET,那么我的API中的Access-Control-Allow-Methods是否正确?
FSVO正确。
它允许GET,因此您可以发出GET请求。
它还允许其他方法,如果浏览器尝试使用其中一个请求,服务器可能会抛出405。