如何向使用 HTTP Basic Auth 的 Web 服务发出跨源请求?
我的客户端是用 jQuery 开发的,并且我的 RESTful/JSON Web 服务已经过修改,因此返回了“跨域”标头。
客户端代码:
$.ajax({
url: "http://localhost:3000/applications", // external service
async: false,
beforeSend: function (req) {
req.setRequestHeader("Authorization", "Basic "+ base64_value)
},
success: function (applications) { $.each(applications, function(i, app) {
list.push(app)
})}
})
客户端代码触发 OPTIONS 和 GET 请求(在 Chrome 中)。OPTIONS 请求失败并返回 401。
我应该为 GET 请求使用哪些标头,应该为 OPTIONS 请求使用哪些标头?哪些服务器响应标头应该用于 GET 和 OPTIONS?
我使用 cURL 和完全相同的授权标头向服务发出请求,并且这有效(即与 JavaScript 代码中的用户名/密码相同)。所以我猜这与 headers 和 OPTIONS 方法有关。