【问题标题】:No 'Access-Control-Allow-Origin' with jquery request [duplicate]没有带有 jquery 请求的“Access-Control-Allow-Origin”[重复]
【发布时间】:2021-03-05 22:49:57
【问题描述】:

我正在使用 javascripte 并尝试使用来自 api 的 url 进行简单的 ajax 请求。当我打开页面时,它返回我:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'null' 不允许访问。 我不知道如何解决这个错误,我一直在尝试一些东西,但它们对我不起作用。 我正在使用:铬。 希望您能够帮助我。 代码如下:

 $.ajax({
   url: 'https://brokersports.ddns.net/api/v2/basketball/inlive/',
   type: 'GET',
   contentType: 'application/json',
   headers: {
     "Authorization": "Bearer my-api-key"
   },
    success: function (data) {
                        console.log(data);
                    $.each(data.matches, function( index, value ) {
                         var league ='<tr id="live"><td id="time">'+ value.live.status+'</td><td id="equi">'+value.match+'</td><td id= "score">'+value.live.score+'</td>';
                       
                          $.ajax({
                           url: 'https://brokersports.ddns.net/api/v2'+value.url+'/1X2/531',
                           contentType: 'application/json',
                           headers: {
                             "Authorization": "Bearer my-api-key"
                           },
                            success: function (data) {
                                             console.log(data);
                                             $.each(data.dataLive, function( index, value ) {
                                             var match ='<td id="odd"><button id=btn>'+ data.dataLive[0].odds[0]+'</button></td><td id="odd"><button id=btn>'+ data.dataLive[0].odds[1]+'</button></td><td id="odd"><button id=btn>'+ data.dataLive[0].odds[2]+'</button></td><td id="odd"><button id=btn>+plus</button></td></tr>';
                                              $('#basketlive').append(league+match);
                                               
                                            });
                                           },
                                           error: function (error) {
   }

                           });


                       
                  });
                   },
   error: function (error) {

   }
   });

这是错误:

【问题讨论】:

  • 如果服务器是你的,发送 CORS 头 - 如果不是 - 你不能修复它 I have been trying some things 像什么?您需要代表客户端(代理)从您的服务器发出请求
  • 您无法从请求端解决此问题。您向提出请求的网站必须明确允许这样做。如果他们不这样做,那么您将无法对此进行直接的客户端脚本请求,而您将需要一个 CORS 代理
  • 而不是 CORS 代理(明天可能会消失)使用您自己的服务器来发出请求
  • 这是最常见的 Stack Overflow 问题之一,请检查是否有人问过此问题。

标签: javascript jquery ajax api


【解决方案1】:

这可能是您必须在服务器端解决的问题。对我来说,使用 node.js 服务器端,安装和使用 cors npm 库是可行的。

【讨论】:

  • 安装 npm 库只是一个抽象层。如果可能,请尽量不要将人们引向图书馆
  • 图书馆很棒,但前提是它们在上下文中有意义(并且答案应该显示如何使用它们)。没有迹象表明 OP 是 (a) 使用 Node.js 或 (b) 正在运行他们正在向其发出请求的服务器。
猜你喜欢
  • 2018-12-13
  • 2018-12-16
  • 2018-11-17
  • 2018-03-28
  • 2019-02-28
  • 2017-11-14
  • 2015-07-03
  • 1970-01-01
  • 2021-09-25
相关资源
最近更新 更多