【发布时间】:2015-02-16 10:44:12
【问题描述】:
这类似于jquery ajax add authentication header,因为它与相同的 API 相关,但更多的是关于对 OPTIONS 请求的响应的有效值。
鉴于此:
$.ajax({
url: "https://auspost.com.au/api/postcode/search.json?q=clayfield",
headers: {
'auth-key': '510839e3-****-****-****-6e04a56e9eb3'
}
}, function (data) {
var json = {
json: JSON.stringify(data)
};
console.log(json);
});
我收到了这样的回复:
Access-Control-Allow-Headers:accept, auth-key
Access-Control-Allow-Methods:GET
Access-Control-Allow-Origin:
Access-Control-Max-Age:1200
Connection:keep-alive
Content-Length:0
Date:Fri, 13 Feb 2015 03:46:42 GMT
Server:nginx
这给出了一个错误:“Access-Control-Allow-Origin”标头包含无效值“”,这意味着我的来源不允许访问。
服务器为 Access-Control-Allow-Origin 标头返回一个空字符串(而不是我的来源或 *)是否有效?如果 是 有效 - 我怎样才能让我的请求正确验证?
【问题讨论】:
-
您不应该将这些标头与请求一起发送...
-
另外,由于您是通过 HTTPS 发送并且有凭据,所以不能使用 *,您必须实际指定来源。
-
对不起,我已经删除了凭据,虽然有一个额外的 http 标头,但它不是授权请求。
-
我使用http还是https也没关系,同样的结果。
-
对,ssl 只是用于客户端证书,所以不应该影响它。我认为空字符串将是罪魁祸首。 null 是标头的有效值,但是,我认为 null 不会允许您从它请求,它需要是 * 或您的来源。