XMLHttpRequest无法加载。预检响应中的Access-Control-Allow-Headers不允许使用请求标头字段密码

时间:2016-09-14 09:16:45

标签: javascript ajax dojo

执行ajax请求时收到以下错误消息

XMLHttpRequest cannot load. Request header field password is not allowed by Access-Control-Allow-Headers in preflight response.

enter image description here

我使用以下作为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本身有关。

1 个答案:

答案 0 :(得分:1)

  

“问题是否与Access-Control-Allow-Headers有关,不包含自定义标题密码?

是。错误消息明确说明。

  

如果端点应仅支持方法GET,那么我的API中的Access-Control-Allow-Methods是否正确?

FSVO正确。

它允许GET,因此您可以发出GET请求。

它还允许其他方法,如果浏览器尝试使用其中一个请求,服务器可能会抛出405。