Javascript jquery中的CORS错误

Javascript jquery中的CORS错误,javascript,jquery,ajax,cors,Javascript,Jquery,Ajax,Cors,我目前正在使用jquery进行一个项目。 这是我的密码: $.ajax({ headers: { "Accept": "application/json"}, type: 'GET', url: 'http://cl.ly/2wr4', crossDomain: true, success: function(data, textStatus, request){

我目前正在使用jquery进行一个项目。 这是我的密码:

 $.ajax({
            headers: { "Accept": "application/json"},
            type: 'GET',
            url: 'http://cl.ly/2wr4',
            crossDomain: true,
            success: function(data, textStatus, request){
                console.log(data);
            }
 });
当我运行此命令时,Firefox中会出现200 OK响应和此错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://cl.ly/2wr4. This can be fixed by moving the resource to the same domain or enabling CORS.
Google Chrome中的这个错误:

XMLHttpRequest cannot load http://cl.ly/2wr4. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
控制台上没有任何记录。 请问我如何修复此错误


谢谢

要修复错误,需要在服务器上启用CORS。客户端希望看到返回的CORS头以允许请求。它甚至可能发送一个飞行前请求,以确保标头在那里

您可以为服务器上的一个、多个或所有域启用CORS服务器端。根据服务器的类型,配置会有所不同

有关更多信息,请参阅下页:

您已经在上面的请求中启用了CORS请求,所以客户端应该已经设置好了

CORS(跨源资源共享)是HTML5的一项功能,允许一个站点访问另一个站点的资源,尽管其域名不同

W3C CORS规范实际上很好地提供了一些响应头的简单示例,例如键头、
accesscontrolalloworigin
,以及在web服务器上启用CORS时必须使用的其他头

如果您想了解有关如何在各种常见web服务器上设置CORS的具体信息,请访问Enable CORS共享网站

根据上面给出的URL,我认为您在该服务器上没有控制权。因此,它根本不起作用

即使您已启用crossDomain:true,服务器也应返回您所需的标头,例如:

这是一个有效的服务器响应;CORS特定标题以粗体显示

HTTP响应:

Access-Control-Allow-Origin: http://xyzcom
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: FooBar
Content-Type: text/html; charset=utf-8
您可以尝试的一件事是:

$.ajax({
            headers: { "Accept": "application/json"},
            type: 'GET',
            url: 'http://cl.ly/2wr4',
            crossDomain: true,
            beforeSend: function(xhr){
                xhr.withCredentials = true;
          },
            success: function(data, textStatus, request){
                console.log(data);
            }
 });

否则,您需要联系API提供商。

对于那些较新的编码人员来说,一个重要的注意事项是,上面的所有内容都假设您有一台正在运行的服务器。如果你是新来的,就像我最初一样,这些类型的答案没有帮助

如果您刚刚在计算机、CodePen等上编写了一些代码,则无法进行配置

服务器端脚本和客户端脚本之间有一个重要的区别——jquery是在客户端(即用户计算机/浏览器)上运行的,因此不需要在客户端设置头

当我设置自己的服务器和自己的PHP文件(PHP是服务器端的,因此它是在服务器上处理的,而不是在浏览器上)时,我终于开始在这个问题上取得进展,并且能够开始发出请求


为那些被包含
“Header set Access Control Allow Origin”*“
答案的答案淹没的人添加此选项。当我开始时,这也让我非常沮丧。

为了消除cors错误,您需要修改jQuery min文件


看看这个问题:您需要添加Access Control Allow Origin header。最好使用像PHP的cURL这样的服务器端库。这里可以对服务器端页面进行ajax调用,该页面具有这样的库,可以调用并获取结果。我尝试将Credentials设置为true,但得到了相同的错误。嗨,我做了更多的挖掘此外,cloudapp的API似乎不支持直接从浏览器发送请求。这些库都用于在服务器端发送请求,这不会触发跨域错误。您可能需要从服务器而不是客户端发送请求。