Ajax 获得授权 header

Ajax GET with Authorization header

我使用 Chrome 扩展 Postman 为 POST 生成代码并使用适当的 headers 获取请求,但经过几个小时的工作后我明白我要需要帮忙。它在 Postman 中完美运行,但它提供的 Javascript 代码有些错误。

如果我在没有身份验证的情况下发出请求 header 我会收到 GET 401 - 未经授权。

如果我使用身份验证 header 发出请求,我会收到 OPTIONS 401 - Unauthorized。

        $.ajax(
        {
        "async": true,
        "crossDomain": true,
        "url": "http://mywebservice.com/example.php?key=myValue",
        "method": "GET",
        "headers": 
            {
                "authorization": "Basic YWRtaW39NjU1YzVlMWM="
            }
        })

任何人都可以解释为什么我使用正确的授权时会得到 401 选项 header?我也尝试过使用 btoa(username + ":" + password) - 结果相同。

浏览器正在阻止您发出跨域请求以保护您免受安全漏洞的侵害。
(这不会发生在 postman 中,因为 postman 是浏览器扩展,因此具有与标准网页不同的权限。)

有几种解决方法:
1. 如果两个域都在您的控制之下,则使用 Access-Control-Allow-Origin HTTP header
2.使用jsonp使 电话