2016-09-24 155 views
0

我在domain.com上託管了一個web應用程序,它有一個註冊表單。跨域請求上的Cookie

當用戶完成註冊表單時,Web應用程序會調用app.domain.com上託管的Api。

Api是一個POST請求,使用JavaScript的XmlHttpRequest調用,響應包含一個Set-Cookie頭。

但是,當我檢查app.domain.com存在的Cookie時,Api請求上收到的Cookie已存在。

我認爲瀏覽器會自動處理cookie,並且由於對app.domain.com的請求返回一個Set-Cookie頭,瀏覽器將在所有後續請求中包含cookie到app.domain.com。

API請求

Set-Cookie:.AspNet.ExternalBearer=DlOvLGlPLlMWO4mXUcH9ieWNSTpRZ80hhWEKXrFUN-BOfwUsVu4x4qNXizpvdRWA4eIyijsmQARICLPOC-spzXjEVzz-WvO2ZsnSR30kM65dpkALqCUn2OgU2Zqc-fF5mESeYCEDeBCbHuSedCNqWfCIUX3mbeoI3vMu1086YwsinlnUkGe4gC9Ggk44N0PPuoh3J1xl85zUVhd9AsoaUspPzX2zlzkPmJMyb3shx9VlE8dx0ePQLuQhbHfnQdt8L5I5W9NK8uM3lJtHWKvR5lszd7AyuMDmX1N_MA7fGRAHCsW8FcCCvzeM9oH3c5zZU0uLKQKT5NZF8QyUdDGq6H6U5dPhm5FLTmsCw3qfLGXvIbO8uu-9p__VdEmvgr60D78uWrg6K-akNYNQDHVWvNyVdOYwM8N2H3l0hiTV8GveiZV-WpI4VSGFoOr821H8PRj1eC6UT6GiTFeksp7JmFLKuVLx8YY6uLcQYldQQUKDnvSiteZbwVg-DSYnGW9FdN3t9AdbUaW3mjFTCz_of5utAO9Fl8TFS02GucZLMCFEfxBkHh9qcmWUMrauWOLl59huTAFYDoCGG9pi06Hvm7ggF3H4oP-fXyFe85AsRC4; domain=app.domain.com; path=/; secure; HttpOnly 

沒有cookie被包括在後續請求app.domain.com

所以

Request URL:https://app.domain.com/api/account/subscribe 
Request Method:POST 

API響應,缺少了什麼?

謝謝!

+0

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials – CBroe

+0

我並不想包括cookie的請求www.app.domain.com而是根據請求對www.app.domain.com的響應設置一個cookie – JCS

+0

_「此外,該標誌還用於指示cookie在響應中何時被忽略。」_ – CBroe

回答

-1

您必須在Cookie中明確設置域名。

Set-Cookie: name=value; domain=domain.com

轉到here瞭解更多詳情。

+0

Cool Jakub!事實上,看看標題域沒有被設置。讓我試試看,我會盡快回復你!謝謝 – JCS

+0

似乎沒有工作。我會更新問題 – JCS

+0

CBroe給出了正確的答案。謝謝Jakub! – JCS