0
跨域問題。從HTTP到相同的域HTTPS。jQuery不發送Cookie到服務器
服務器需要X-Requested-With
頭,所以我將其設置在jQuery的阿賈克斯選項:
'headers': {'X-Requested-With': 'XMLHttpRequest'}
jQuery的發送選項,然後:
OPTIONS /my/test/ HTTP/1.1
Host: www.my.dev
Origin: http://www.my.dev
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with
服務器響應:
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: x-requested-with
Access-Control-Allow-Credentials: true
然後jQuery的發送「實際「請求:
POST /my/test/ HTTP/1.1
Host: www.test.dev
X-Requested-With: XMLHttpRequest
Origin: http://www.test.dev
Cookie標題丟失!
HTTP/1.1 403 Forbidden
Content-Type: application/json
Set-Cookie: SESSID=3tg8svt3lrv97v155uv2kqr3o2; expires=Sat, 25-Apr-2015 17:35:13 GMT; Max-Age=259200; path=/
添加
'xhrFields': {
'withCredentials': true
},
'crossDomain': {
'crossDomain': true
},
jQuery的AJAX選項導致jQuery的不發送實際的請求可言,唯一的選擇:與
服務器響應。
如何發送cookie? 至少有人可以確認cookie是以類似的設置發送的嗎?
是否僅將cookie定義爲https?沒有什麼可以替代你的...... –
你確定這個cookie不是一個HTTPS專用cookie嗎? – Pointy
服務器對實際請求的響應更新了問題。就我所見,Cookie不是HTTPS。 – coviex