尽管设置了标头,但我不想使用 JSONP,但 cors 无法解析

cors not resolving inspite of setting headers, i dont want to use jsonp

本文关键字:JSONP cors 我不想 设置      更新时间:2023-09-26

我正在尝试使用 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);
        }
});

但这仍然在控制台上给了我以下警告跨源请求被阻止:同源策略不允许在 http://example.com 读取远程资源

它给了我错误网络错误: 401 未经授权

Access-Control-Allow-*响应标头,而不是请求标头。它们必须由example.com设置,而不是你的JavaScript。

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

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