我一直在尝试解决是否有可能摆脱我的"访问控制-允许-原产地"错误。
我正在从一些以 CSV 文件形式返回的报告请求数据,但要使它们正常工作,我必须使用禁用 CORS 的 chrome 插件。
在阅读了大量的 Stack Over Flow 问题和大量的谷歌搜索之后,我仍然无法判断它是否是我没有放入代码中的东西,或者它是否是需要打开它的数据存储设置。
这是我请求数据的代码,请记住,这仅适用于插件,并且我的 API 密钥已被删除。
function Getfueltype(){
j=JSON.stringify
$.ajax({
url: 'https://api.bmreports.com/BMRS/FUELINSTHHCUR/v1?APIKey=&ServiceType=CSV',
async: false,
success: function (csvd) {
data = $.csv.toArrays(csvd);
},
dataType: "text",
complete: function () {
while (n < (data.length)-2) {
fueltype = j( data[n].slice(1,2));
GigaWatt = j(parseFloat(data[n].slice(2,3)));
arr.push(fueltype);
arr2.push(GigaWatt);
n++
}
drawChart2(data);
}
});
}
如果您在本地计算机上尝试此操作以在服务器上线之前测试代码,则我在 chrome 中使用了--allow-file-access-from-files
标志。
这使您可以绕过No Access-Control-Allow-Origin header
问题。
例:
- 在安装文件夹中创建 chrome.exe 的副本。
- 将该副本作为快捷方式发送到桌面。
- 右键单击Chrome快捷方式,然后将标志粘贴到
Target
框的末尾。(请参阅下面的示例字符串(
Target - "C:\Users\SuperCoolUser\AppData\Local\Google\Chrome\Application\chrome-copy.exe" --allow-file-access-from-files
希望有一丝帮助。