我正在将 API 的客户端库从 JSONP 移植到 CORS。我已经在服务器中设置了所有正确的标头并在客户端中完成了所有指示的事情,但是我遇到了关于 cookie 的问题。该 API 身份验证方法适用于 cookie。使用 JSONP,它使用 API 密钥作为参数向 API 发出 GET 请求。然后服务器在 api.io.holalabs.com(API URL)设置一个 cookie,所以下次它调用 API 时,服务器会请求 cookie 并进行登录。问题是,虽然我在标题中看到了 Set-Cookie,但 api.io.holalabs.com 上没有设置 cookie,因此登录失败。这些是我的标题:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version
Access-Control-Allow-Methods:GET
Access-Control-Allow-Origin:http://holalabs.com
Access-Control-Expose-Headers:X-Api-Version, X-Request-Id, X-Response-Time
Connection:close
Content-Length:13
Content-MD5:RjkY1fW5i5MKifxPk+r4tg==
Content-Type:application/json
Date:Fri, 13 Apr 2012 16:06:56 GMT
Server:nginx/1.0.14
Set-Cookie:apikey.sig=DYyrzLFUfJSjsmK5crkxHQg-rxQ; path=/; httponly
X-Api-Version:1.0.0
X-Request-Id:c78b4223-1caf-42db-a99e-b075bdc10ea5
X-Response-Time:2
编辑:在 API 中使用 cookie 是一个可怕的想法,所以现在我们使用标头来验证用户。问题已关闭!