首页 > 解决方案 > 当我无权访问服务器时跨域资源共享

问题描述

如果我有可能摆脱我的“访问控制允许来源”错误,我一直在尝试锻炼。

我正在从一些以 CSV 文件形式返回的报告中请求数据,但为了使它们正常工作,我必须使用禁用 CORS 的 chrome 插件。

在阅读了大量堆栈溢出问题和大量谷歌搜索之后,我仍然无法判断这是我没有放入我的代码中的东西,还是它是存储数据的设置需要打开它。

这是我请求数据的代码,请记住,这只适用于插件并且我的 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);

        }
    });
}

标签: javascriptjqueryajaxcors

解决方案


如果您在本地计算机上尝试此操作以在代码在服务器上生效之前对其进行测试,我将--allow-file-access-from-filesflag 用于我的 chrome。

这使您可以绕过No Access-Control-Allow-Origin header问题。

例子:

  1. 在安装文件夹中创建 chrome.exe 的副本。
  2. 将该副本作为快捷方式发送到桌面。
  3. 右键单击 Chrome 快捷方式并将标志粘贴到Target框的末尾。(参见下面的示例字符串)

目标 - "C:\Users\SuperCoolUser\AppData\Local\Google\Chrome\Application\chrome-copy.exe" --allow-file-access-from-files

希望能帮上一点忙。


推荐阅读