Java Restlet:cookie不会发送到域/应用程序的所有页面

Java Restlet:cookie不会发送到域/应用程序的所有页面,java,jquery,cookies,restlet,Java,Jquery,Cookies,Restlet,我有一个restlet资源,它可以对一个人进行身份验证,并设置一个带有密钥的cookie: @Post("json") public Representation login(String json) { // validate user credentials ... getResponse().getCookieSettings().add(new CookieSetting(1, "k", key)); getResponse().getCookieSetting

我有一个restlet资源,它可以对一个人进行身份验证,并设置一个带有密钥的cookie:

@Post("json")
public Representation login(String json) {
    // validate user credentials ...

    getResponse().getCookieSettings().add(new CookieSetting(1, "k", key));
    getResponse().getCookieSettings().add(new CookieSetting(1, "p", person.getURI()));

    return new StringRepresentation(response.toString(), MediaType.APPLICATION_JSON);
}
当我调用与login()方法关联的URL时,一切似乎都很好。Cookie在响应中似乎已正确返回,如果我之前已收到Cookie,则会将其发送到服务器:

Remote Address: 127.0.0.1:8000
Request URL: http://127.0.0.1:8000/api/person
Request Method: POST
Status Code: 200 OK
请求标题

Accept: undefined
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,pt-PT;q=0.6,pt;q=0.4,es-419;q=0.2,es;q=0.2,en-GB;q=0.2
Connection: keep-alive
Content-Length: 42
Content-Type: application/json
Cookie: k="546f71445bf1bacd60a3f715d0250267"; p="http://compflow.pt/flowOntology/admin"
Host: 127.0.0.1:8000
Origin: http://127.0.0.1:8000
Referer: http://127.0.0.1:8000/job
X-Requested-With: XMLHttpRequest
Accept-Ranges: bytes
Content-Length: 46
Content-Type: application/json; charset=UTF-8
Date: Tue, 01 Jul 2014 15:05:13 GMT
Server: Restlet-Framework/2.1.7
Set-Cookie: k=546f71445bf1bacd60a3f715d0250267
Set-Cookie: p=http://compflow.pt/flowOntology/admin
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
响应标题

Accept: undefined
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,pt-PT;q=0.6,pt;q=0.4,es-419;q=0.2,es;q=0.2,en-GB;q=0.2
Connection: keep-alive
Content-Length: 42
Content-Type: application/json
Cookie: k="546f71445bf1bacd60a3f715d0250267"; p="http://compflow.pt/flowOntology/admin"
Host: 127.0.0.1:8000
Origin: http://127.0.0.1:8000
Referer: http://127.0.0.1:8000/job
X-Requested-With: XMLHttpRequest
Accept-Ranges: bytes
Content-Length: 46
Content-Type: application/json; charset=UTF-8
Date: Tue, 01 Jul 2014 15:05:13 GMT
Server: Restlet-Framework/2.1.7
Set-Cookie: k=546f71445bf1bacd60a3f715d0250267
Set-Cookie: p=http://compflow.pt/flowOntology/admin
Vary: Accept-Charset, Accept-Encoding, Accept-Language, Accept
调用
http://127.0.0.1:8000/api/person
通过使用JQuery的AJAX调用执行,如下所示:

$.ajax({
        url: '/api/person',
        type:'POST',
        accepts : "application/json",
        contentType : "application/json",
        processData : false,
        dataType : "text",
        data: JSON.stringify(data),
        success: function (data) {
            data = JSON.parse(data);    
            sessionStorage["userData"] = JSON.stringify(data.data);
            if(callback) callback();
        },
        error: function(data) {
             $('.alert-error').text(data).show();
        }
    });
但是,如果我尝试执行GET(直接通过浏览器)到地址
http://127.0.0.1:8000/job
,Cookie不会被发送。请求中未设置Cookie标头


由于这不是一个跨域请求,并且没有对cookie的路径和域设置任何限制(我尝试将它们设置为“/”和“
127.0.0.1
”,但均无效),因此我对可能导致此问题的原因没有任何想法。非常感谢您能给我的所有帮助。

奇怪的是,这种HTTP服务器连接器改变了代码的行为。我已经为此()输入了一个问题

作为一种解决方法,我建议您按照以下方式精确确定路径:

getCookieSettings().add(new CookieSetting(0, "k", key, "/", null));
注意:服务器资源内部;您可以使用快捷方式“getCookieSettings()”而不是“getResponse().getCookieSettings()”