跨域设置cookie不起作用

时间:2014-04-14 10:14:03

标签: javascript angularjs cookies

我正在开发一个webapp。我正在我的机器上本地开发它,在localhost:8000上运行。该应用程序需要在localhost:8888上登录我的计算机上运行的另一台服务器。在生产中,这些将在不同的子域中。

我的angularjs客户端代码是:

postData = new Array('user_id=' + id, 'token=' + token);

$http.post(url, postData.join('&'), {withCredentials:true, headers: {'Content-type': 'application/x-www-form-urlencoded'}})
    .success(successHandler)
    .error(errorHandler);

我的服务器返回一个cookie,但浏览器不会在后续请求中发送该cookie。我的服务器有以下CORS标头:

    self.set_header('Access-Control-Allow-Headers', 'origin, content-type, accept, authorization')
    # self.set_header('Access-Control-Allow-Max-Age', 21600)
    self.set_header('Access-Control-Allow-Methods', 'HEAD, OPTIONS, GET, POST')
    self.set_header('Access-Control-Allow-Origin', 'http://127.0.0.1:8000')
    self.set_header('Access-Control-Allow-Credentials', 'true')

我尝试将'Access-Control-Allow-Origin'作为'*',但Chrome表示当withCredentials为true时我无法使用通配符域。

Chrome仍未在后续请求中向服务器发送标头。

我做错了什么?我在OSX上,因为这将与cordova一起运行,我正在寻找任何来让它现在正常运行。

0 个答案:

没有答案