需要一种解决XMLHttpRequest预检问题的方法

时间:2019-04-23 02:26:01

标签: javascript firefox xmlhttprequest

我正在尝试从USDA webservice访问气候数据,该数据似乎具有错误的OPTIONS配置。不幸的是,firefox希望将我的所有GET请求“预检”到OPTIONS中,我不知道如何使其停止!

我已将请求简化为最低限度。

var url=" https://www.wcc.nrcs.usda.gov/awdbWebService/services";
var async=true;
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", url + "?wsdl", async);
xmlHttp.setRequestHeader('Access-Control-Allow-Origin', '*');
xmlHttp.send(null);

但是令人讨厌的是,firefox似乎本身会自动填写很多其他标头,然后检测到它们是“ forbidden”,并且无论如何都要强制执行预检!令人沮丧!

以下是所有在选项中出现的标题:

Host: www.wcc.nrcs.usda.gov
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Access-Control-Request-Method: GET
Access-Control-Request-Headers: access-control-allow-origin
Origin: null
DNT: 1
Connection: keep-alive

(请注意,如果我在Web开发人员中右键单击该事务,执行“编辑并重新发送”,将方法从OPTIONS更改为GET,这些标头就可以正常工作。因此,我声称政府服务器配置错误。)< / p>

现在,我的问题是,有什么方法可以执行以下任何操作:

  1. 告诉浏览器直接执行GET并跳过预检“逻辑”

  2. 告诉浏览器不要添加禁止的标题

  3. 在发送之前从请求中删除禁止的标头

谢谢。

0 个答案:

没有答案