有一個節點服務器在接受用戶的正確憑證時,護照js根據set-cookie的名稱在請求頭中創建和發送會話cookie。CORS - 服務器端cookie沒有在chrome瀏覽器上保存
但是,當我做ajax請求從我的瀏覽器接受請求它不會在客戶端添加cookie。因此,當一個新的請求,從客戶端生成,服務器不會對其進行身份驗證並拋出401
我很困惑,無論是瀏覽器的問題或者我從AJAX請求
請幫助缺少的東西。
有一個節點服務器在接受用戶的正確憑證時,護照js根據set-cookie的名稱在請求頭中創建和發送會話cookie。CORS - 服務器端cookie沒有在chrome瀏覽器上保存
但是,當我做ajax請求從我的瀏覽器接受請求它不會在客戶端添加cookie。因此,當一個新的請求,從客戶端生成,服務器不會對其進行身份驗證並拋出401
我很困惑,無論是瀏覽器的問題或者我從AJAX請求
請幫助缺少的東西。
感謝您的答案。我正在嘗試它withCredentials
的事情,但會話cookie沒有設置在我的本地。
我想到的原因是允許的起源。我需要在後端設置允許的來源。
如果使用憑證屬性傳遞XHR by是一個安全請求。因此,如果允許的來源與請求源相匹配,則客戶端瀏覽器僅保存cookie。
所以簡單的修復方法是將主機更改爲與允許的原點相匹配的東西。
在節點末尾,我需要做origin: 'domain.com'
並且在前端我需要將我的服務器(本地主機)設置爲指向test.domain.com。和賓果。有效。!
我在Chrome中使用Angular 4時遇到了這個問題(IE正在工作)。
客戶端在localhost上的請求:4200到localhost上的WebApi:24336。 如果所有CORS設置爲「Access-Control-Allow-Credentials」value =「true」「Access-Control-Allow-Origin」value =「http:// localhost:4200」等,並且正在傳遞{withCredentials: true},例如http.post(url,{},{withCredentials:true})。
的修復,對我來說,是設置默認RequestOptions爲{withCredentials:真正}按照步驟https://angular.io/api/http/BaseRequestOptions並添加以下內容提供商:在app.module.ts
,{provide: RequestOptions, useClass: MyOptions}
你碰巧知道哪個域名服務器正在創建cookie? Cookie域和網站域衝突的可能原因之一。 –
簡單的需要請求(來自第三方的請求)不允許使用cookie。 – dandavis
您可以分享您用於執行ajax請求的代碼,以及身份驗證服務器和網站的域名嗎?可能是@MaheshChavda建議的CORS問題;某些瀏覽器在進行跨域ajax請求時拒絕處理'Set-Cookie'標頭。您可以按照本答案中的建議使用'credentials'添加適當的選項http://stackoverflow.com/questions/8863571/cors-request-why-are-the-cookies-not-sent/8870830#8870830或(與角):http://stackoverflow.com/questions/19383311/angularjs-http-does-not-seem-to-understand-set-cookie-in-the-response。 –