此问题在此处已有答案:
AJAX cross domain call(11个回答)
7年前关闭。
我已经阅读了每一个可以想象的链接,我可以找到关于这个问题,但我仍然不能让它工作。
我正在向一个API(在另一个域上)发出AJAX请求(从我的域),但我一直在控制台日志中得到的是(显然我已经修改了排除任何域等):
XMLHttpRequest无法加载https://[APIPROVIDER]/something.json?选项。所请求的资源上不存在“PITCH-Control-Allow-Origin”标头。因此,不允许访问Origin“http://[MYDOMAIN].com”。
下面是我的代码:
$(document).ready(function() {
function step1(){
$.ajax({
url: 'getit.php',
method: 'get',
dataType : 'json',
success: function(data){
step2(data.url);
},
error: function(jqXHR, status, error) {
console.log(error);
}
});
}
function step2(url){
$.ajax({
url: url,
type: 'get',
dataType : 'json',
success: function(data){
console.log(data);
},
error: function(xhr, status, error) {
console.log(error);
}
});
}
step1();
});
字符串
我试过,ajaxSetup
(设置头),没有帮助。
我试过了headers: { 'Access-Control-Allow-Origin': '*' }
我试过crossDomain: true
。
我试过删除dataType : 'json'
。
就像我说的,这是慢慢地把我逼疯了.主要是因为这是唯一的事情阻止我继续前进,并与呈现响应.它是如此接近,我只是不断得到这个错误,无论我做什么.我已经读了几篇文章CORS,在标题中的控制-允许-起源.我仍然不明白为什么我得到这个错误.
任何帮助都非常感谢!/绝望
1条答案
按热度按时间8zzbczxx1#
我不得不承认,我仍然有点困惑于整个CORS/code-Control-Allow-Origin with AJAX(从我的理解来看,这是jQuery客户端调用的结果。也就是说,因为服务器端域不再“起作用”)。但我最终使用PHP代理让它工作。这是我最终得到的(对于我自己的符号,以及其他任何与同样问题作斗争的人)。
**注意!**这里的“关键”部分是针对我自己的需求的(我只是想为任何可能对所有这些都不熟悉的人展示整个代码)。也就是说,这里要解决的问题是代理部分,在服务器端进行调用并发送具有正确头部的请求。
jQuery/AJAX
字符串
PHP getkey
型
PHP密钥(在服务器上可公开访问的文件夹之外)
型
PHP代理
型
我想我只是需要一些睡眠......我一直盯着自己盲目的在这太久了。