爲了更好地說明我的問題,問題可能是:我可以在來自jsonp請求的響應中設置cookie嗎?
我可以從JSONP請求發起會話嗎?
更詳細地說:假設一個JSONP請求是從我的瀏覽器到myserver.com。 myserver.com是否可以通過JSONP響應來設置cookie,以便稍後當再次向myserver.com發出請求時(直接在doc.host = myserver.com或通過來自任意doc.host的另一個JSONP請求間接)時, cookies會被髮送給它?目前瀏覽器似乎忽略了我使用JSONP響應發送的Cookie。 是我想要的嗎?我在這裏錯過了什麼?
編輯:這是我做的,通過加載本地JS文件通過一個虛擬的本地HTML,只是獲取最新的jQuery和加載js文件的要求:
$.ajax({
url: "http://my-remote-server/jsonp/service/test",
dataType: 'jsonp',
data: {some:'data'},
success: function(responseData)
{console.log(responseData);}
});
上述JSONP請求的響應,正在設置一個cookie。自chrome報告以來,這一點已得到證實。 問題是,如果我再次重新執行上述操作,則先前設置的cookie不會被髮送回服務器。編輯2:我去了Chrome瀏覽器(在引擎蓋下的頁面),我找不到cookie,雖然它被報告(調試控制檯的鉻)在JSONP響應收到。這意味着服務器發送它,瀏覽器看到它,然後拋棄它。
我在移動Safari中遇到了這個問題。去偏好設置'接受Cookies'爲'總是'解決了它。 – schellsan