【问题标题】:not able to fetch url cors procted javascript无法获取 url cors proted javascript
【发布时间】:2022-12-20 02:07:21
【问题描述】:

我正在尝试通过 javascript 获取 url,但出现了 cors protected 错误,我不知道该如何解决

这是我的代码

<script>
 

fetch("https://www.nseindia.com/api/liveEquity-derivatives?index=nse50_fut",
  {
    mode: 'cors',
    credentials: 'include',
    method: 'GET',
    header: {
'Access-Control-Allow-Origin':'*',}
}).then(
    res => {
      res.json().then(
        data => {
        //   console.log(data.Algo);
          if (data.Algo.length > 10) {
  
            var temp = "";  
            data.Algo.forEach((itemData) => {
              temp +="<tr>";
              temp +="<td class=" + "col-md-8" + ">" + itemData.underlying + "</td>";
              temp += "<td class=" + "col-md-8" + ">" + itemData.identifier + "</td>";
              temp += "<td class=" + "col-md-8>" + itemData.instrumentType + "</td>";
              temp += "<td  class=" + "col-md-8" + ">" + itemData.contract + "</td></tr>";
      }
            );
            document.getElementById('data').innerHTML = temp;
          }

    
    
        }
      )
    }
  )</script>

【问题讨论】:

    标签: javascript html fetch fetch-api


    【解决方案1】:

    如何修复 CORS 标头 Access-Control allow Origin missing?

    =>如果服务器在您的控制之下,请将请求站点的来源添加到允许访问的域集中,方法是将其添加到 Access-Control-Allow-Origin 标头的值中。您还可以将站点配置为允许任何站点使用正确的域访问它。 示例:访问控制允许来源:“http://www.my-domain.example”

    Access-Control-Allow-Origin : "*" => 这用于公共 API,而不是工业或个人 API。

    const url =
        "https://www.nseindia.com/api/liveEquity-derivatives?index=nse50_fut";
    
    fetch(url, {
        mode: "cors",
        credentials: "include",
        method: "GET",
        headers: { "Access-Control-Allow-Origin": "*" },
    }).then((res) => {
        res.json().then((data) => {
            console.log(data.Algo);
    
            /* 
            if (data.Algo.length > 10) {
                var temp = "";
                data.Algo.forEach((itemData) => {
                    temp += "";
                    temp += "" + itemData.underlying + "";
                    temp += "" + itemData.identifier + "";
                    temp += "" + itemData.instrumentType + "";
                    temp += "" + itemData.contract + "";
                });
                document.getElementById("data").innerHTML = temp;
            }
            */
        });
    });

    您的代码中有一个小错误,我已经修复了。如果您有权访问域,现在可以尝试将 * 替换为实际的域来源

    【讨论】:

    • 谢谢你的回答,但没有帮助,先生
    • CORS 策略已阻止从来源“127.0.0.1:5501”获取“nseindia.com/api/liveEquity-derivatives?index=nse50_fut”的访问权限:对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”标头不存在请求的资源。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
    • 我仍然遇到这个错误
    • 无论如何我可以从我这边访问这个
    • 你可以访问服务器吗??服务器端使用了哪种技术
    猜你喜欢
    • 2021-05-26
    • 2017-07-08
    • 2020-09-02
    • 2012-03-10
    • 1970-01-01
    • 2017-09-30
    • 2015-10-15
    • 2021-08-26
    • 1970-01-01
    相关资源
    最近更新 更多