AJAX如何在头文件中传递api密钥

时间:2017-11-01 01:01:05

标签: javascript jquery json ajax

我在这里遇到一个奇怪的AJAX调用情况,如何在头文件中传递api密钥:

我的json的完整网址是:https://apifootball.com/api/?action=get_events&from=2017-10-30&to=2017-11-01&APIkey=fd6b8ec7d651960788351ee2b1baffba6ac1a9c8eb047118a1a823c247bdade0 我现在正在尝试在ajax调用的标头中传递API密钥,但仍然有来自控制台的错误:

“无法加载https://apifootball.com/api/?action=get_events&from=2017-10-30&to=2017-11-01&:对预检请求的响应未通过访问控制检查:请求的资源上没有”Access-Control-Allow-Origin“标头。来源”http://bigsportlive.com因此,不允许访问。“ 这是我的ajax电话:

var apiKey = "fd6b8ec7d651960788351ee2b1baffba6ac1a9c8eb047118a1a823c247bdade0";
$.ajax({
    type: "GET",
    url: "https://apifootball.com/api/?action=get_events&from=2017-10-30&to=2017-11-01",
    headers: { "APIkey": apiKey },
    success: function(result){
      result[i].league_name
    }
 });

可能我做的事情不正确? 谢谢!

2 个答案:

答案 0 :(得分:1)

如果您想为每个请求添加标头(或一组标头),请使用 $。发送挂钩 $ .ajaxSetup()

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main(){    
    char str[100];
    char buf[100];

    double l,m,a,b;

    int c,d,t,u,r,q;
    int count =0;

    l=59874.141715197809000;
    m=59874.141715197817000;

    a= (l - (int)l);
    b= (m -(int)m);

    sprintf(str,"%.15f",a);
    sprintf(buf,"%.15f",b);

    c = strlen(str);
    d = strlen(buf);

    for(t=3;t<c;t++){
        for(u=3;u<d;u++){
            if(str[t]==buf[u]){
                count++;
                break;
            }
        }
    }
    printf("matching decimal places = %d \n",count);
    return 0;
}

另一种解决方案是使用小写标题

$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('x-my-custom-header', 'some value');
    }
});

// Sends your custom header
$.ajax({ url: 'your/url' });

// Sends both custom headers
$.ajax({ url: 'your/url', headers: { 'x-some-other-header': 'some value' } });

答案 1 :(得分:0)

是的,存在Access-Control-Allow-Origin错误。 如果是这样,你可能需要一个php后端来为你提供这个,我相信,使用

<?php
    $data = file_get_contents("https://apifootball.com/api/?action=get_events&from=2017-10-30&to=2017-11-01&APIkey=fd6b8ec7d651960788351ee2b1baffba6ac1a9c8eb047118a1a823c247bdade0");

echo json_encode($data);
?>

然后使用ajax调用此文件。

$.ajax({
            type: "GET",
            url: 'name_of_php_file.php',
            dataType: "json",
            success: function(result){
              alert(result);
            }
        });