我创建了一个 API /user/auth,我可以使用 POST 发送一个 Json 对象,例如:
var user = {"username":"alex", "password":"m"}
$http(
{
method: 'POST',
url: '/api/v1/user/auth',
data: user,
}
).
success(function(data, status, headers, config) {
console.log(data)
}).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
来自 Django 的响应如下:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type,*
Access-Control-Allow-Methods:POST,GET,OPTIONS,PUT,DELETE
Access-Control-Allow-Origin:*
Content-Language:fr
Content-Type:application/json
Date:Fri, 30 Aug 2013 15:22:01 GMT
Server:WSGIServer/0.1 Python/2.7.5
Set-Cookie:sessionid=w63m0aoo8m3vfmvv0vk5d6w1708ftsrk; Path=/
Vary:Accept, Accept-Language, Cookie
所以 Django 返回了一个很好的 cookie 但我不知道为什么,Chrome 没有在 Resource.xml 中设置这个 cookie。
请求从 127.0.0.1:8000 发送到 127.0.0.1:8080;我使用这个中间件来处理 CROS 请求,我还设置了:
SESSION_COOKIE_HTTPONLY = False