Google应用引擎端点和HTTP会话

时间:2015-04-19 11:48:59

标签: ajax google-app-engine cors google-cloud-endpoints

我在Google App Engine中部署了一个应用程序,并且我还使用了Cloud Endpoint功能进行REst呼叫。

我使用自定义域指向我的应用程序。您可能知道,Endpoint不支持自定义域。所以我的情况是这样的:

  1. 我打开页面http://www.example.org
  2. 我向https://my-example.appspot.com/_ah/api/service
  3. 等端点发出ajax请求

    现在的问题是:每当我向端点发出ajax请求时,都会创建一个新的Session!如何在请求之间保持会话?我检查了Endpoint的回复,但我没有找到任何对会话cookie的引用......

    更新1

    对于Ajax调用,我使用的是JQuery。

    $.post('_ah/api/user/v1/login', function() {
      console.log('logged');
    }); 
    

    我现在添加这是为了添加withCredentials字段。

    $(document).ajaxSend(function(elm, xhr, s) {        
        xhr.withCredentials = true;
    });
    

    更新2

    这是我的请求和服务器响应标头

    请求

    Accept:*/*
    Content-Type:application/x-www-form-urlencoded; charset=UTF-8
    Origin:http://www.example.org
    Referer:http://www.example.org/game.html
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
    X-CSRFToken:xkNZPouvfl2mRT0IKFZNB2xJpffaaK3UuYhhg5eoeRAiMqxaoQ14q93cv2xeRnYP
    

    响应

    access-control-allow-credentials:true
    access-control-allow-origin:http://www.example.org
    access-control-expose-headers:Content-Encoding,Content-Length,Content-Type,Date,Server
    alternate-protocol:443:quic,p=1
    cache-control:private, max-age=0
    content-encoding:gzip
    content-length:165
    content-type:application/json; charset=UTF-8
    date:Sun, 19 Apr 2015 12:40:49 GMT
    expires:Sun, 19 Apr 2015 12:40:49 GMT
    server:GSE
    status:200
    version:HTTP/1.1
    x-content-type-options:nosniff
    x-frame-options:SAMEORIGIN
    x-xss-protection:1; mode=block
    

0 个答案:

没有答案