Access-Control-Allow-Origin不允许加载XMLHttpRequest

use*_*586 21 javascript api jquery json getjson

我正在尝试访问education.com API数据.但是,我一直收到错误指出的错误:

XMLHttpRequest无法加载 http://api.education.com/service/service.php?f=schoolSearch&key=mykey&sn=sf&v=4&city=Atlanta&state=ga&Resf=json.Access-Control-Allow-Origin不允许使用Origin.

我的代码如下:

$(function(){
    $.getJSON('http://api.education.com/service/service.php?f=schoolSearch&key=mykey&sn=sf&v=4&city=Atlanta&state=ga&Resf=json', 
    function(data) {
        console.log(data);
    });
});
Run Code Online (Sandbox Code Playgroud)

有谁可以帮助我吗?

SAL*_*MAN 14

关于跨领域AJAX问题的文章在这里发表了一段时间:

针对IE,FIREFOX,CHROME,SAFARI - JQUERY的JSON响应交叉域AJAX请求

如果您控制响应服务器,最简单的方法是为以下内容添加响应标头:

Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)

这将允许跨域AJAX.在PHP中,您需要修改响应,如下所示:

<?php header('Access-Control-Allow-Origin: *'); ?>
Run Code Online (Sandbox Code Playgroud)

你可以在Heache conf或htaccess文件中设置Header set Access-Control-Allow-Origin*设置它就像魅力一样

重要说明:
通配符将允许任何域向您的主机发送请求.我建议使用您将在其上运行脚本的特定域替换星号.

  • 不幸的是,我无法控制响应服务器.:/ (19认同)

小智 2

Cross-Origin Resource Sharing除非 education.com 服务器配置为允许 CORS ( ) 请求(仅此而已) ,否则您无法使用浏览器执行此操作Access-Control-Allow-Origin

但是,您的服务器可以代表您发出请求,然后您可以从那里检索数据。