今天在html文件中,發送請求需要攜帶cookie,由於本地直接打開方式,是不能設置cookie的,所以用了http-server,去模擬在服務器打開;
然后可以設置上cookie了,在瀏覽器控制台也看到了,但請求接口中請求頭一直沒看到cookie,后來經過一番百度,得知當cookie的域和請求接口地址的域不一致時,瀏覽器發起請求時,是不會攜帶上cookie的。
比如cookie的域是:.a.com;而接口地址是http://test.abc.com/api/getInfo;這時2者域不同,一個.a.com,一個.abc.com
cookie的域,默認就是瀏覽器地址欄中的請求地址;由於我用了http-server,瀏覽器地址是127.0.0.1,當然和真正接口是不同域。所以在真正項目,應該不存在這種情況吧。
當知道問題時,就以為設置下cookie時順便指定一下域就行了。document.cookie = "token=1234;domain='.abc.com';path=/;"; 指定域為.abc.com;
設好后再看,發現根本沒設上,瀏覽器上cookie為空,把域去掉就可以設置上;
所以cookie是不能指定域的?后來直接在瀏覽器手動改的域,然后再發請求,就發現請求頭攜帶了cookie;