Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript cors不解析,尽管设置了标题,但我不想使用jsonp_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript cors不解析,尽管设置了标题,但我不想使用jsonp

Javascript cors不解析,尽管设置了标题,但我不想使用jsonp,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试使用ajax jquery调用api,它应该会给我json响应,我使用了以下方法 $.ajax({ type:'GET', url: 'http://example.com', headers:{ 'Access-Control-Allow-Origin':'*', 'Access-Control-Allow-Headers':'X-Requested-With',

我正在尝试使用ajax jquery调用api,它应该会给我json响应,我使用了以下方法

 $.ajax({
        type:'GET',
        url: 'http://example.com',
        headers:{

            'Access-Control-Allow-Origin':'*',
            'Access-Control-Allow-Headers':'X-Requested-With',
            'Access-Control-Allow-Methods': 'POST, GET',
        },

        //headers:{"Access-Control-Allow-Origin":"*"},
        dataType: "json",



        success: function(msg) {
        alert("data loaded");
        console.log(msg);
        }
});
但这仍然在控制台上给了我以下警告 已阻止跨源请求:同一源策略不允许读取位于的远程资源

这给了我一个错误 网络错误:401未经授权的访问控制允许-*是响应头,而不是请求头。它们必须由example.com设置,而不是由JavaScript设置


如果您可以授权自己的代码阅读其他任何人的网站,那么这将是一个毫无意义的授权系统。

访问控制允许标头需要来自Web服务器,而不是由客户端发送。 您不能在调用中设置它们,必须修改Web服务器配置。 401表示您需要身份验证,在这种情况下,源代码需要与*不同。此外,您还需要jQuery来允许发送身份验证,并在服务器上添加访问控制允许凭据:true头。 此外,您还需要在客户端启用cors
$.support.cors=true

header Access Control Allow Origin是响应头,它应该从api设置,该api是http://example.com 不是你自己的ajax请求。好的,谢谢你的澄清,我不能接触服务器端,所以,请告诉我有没有一种方法可以避免客户端ajax请求中的cors?没有,您无法避免客户端ajax请求中的cors问题…您必须询问web应用程序中使用的web api的用户,并告诉他们在请求来自您的域时添加标头访问控制允许来源。。