我在这里遇到一个奇怪的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
}
});
可能我做的事情不正确? 谢谢!
答案 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);
}
});