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使
电话
我使用 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使
电话