axios請(qǐng)求攜帶cookie 如何解決微信上跨域請(qǐng)求withCredentials帶不上cookie?
如何解決微信上跨域請(qǐng)求withCredentials帶不上cookie?首先要說(shuō)的是,你的問(wèn)題相當(dāng)費(fèi)勁。中英文符號(hào)混雜,大小寫混雜,給讀者閱讀帶來(lái)很大困難。第二,你是跨領(lǐng)域的。JS不能使用post和g
如何解決微信上跨域請(qǐng)求withCredentials帶不上cookie?
首先要說(shuō)的是,你的問(wèn)題相當(dāng)費(fèi)勁。中英文符號(hào)混雜,大小寫混雜,給讀者閱讀帶來(lái)很大困難。第二,你是跨領(lǐng)域的。JS不能使用post和get請(qǐng)求。這是一個(gè)瀏覽器安全規(guī)則,但您可以使用其他方法獲得類似的結(jié)果。JS跨域,post可以通過(guò)提交隱藏表單到隱藏框架頁(yè)面得到請(qǐng)求結(jié)果。對(duì)于get請(qǐng)求,可以將get參數(shù)添加到目標(biāo)地址,然后抓取目標(biāo)頁(yè)的所有內(nèi)容,并通過(guò)常規(guī)處理得到結(jié)果。您也可以使用JSON來(lái)獲得結(jié)果(有關(guān)詳細(xì)信息,請(qǐng)自學(xué)JSON,非常簡(jiǎn)單)。您的問(wèn)題只是獲取cookie時(shí)間,因此您可以通過(guò)JS直接獲取目標(biāo)頁(yè)面或JSON。和B域名曲奇.php,完全沒有訪問(wèn)權(quán)限索引.php因?yàn)樗麄兪峭粋€(gè)電臺(tái),索引.php你可以去看看餅干,曲奇.php也很方便。
如何帶Cookie實(shí)現(xiàn)跨域訪問(wèn)?
登錄后,登錄信息將保存到cookie中。同時(shí),服務(wù)器中的用戶被設(shè)置為登錄狀態(tài)。跨域后,訪問(wèn)cookie是否存在。
如果存在,請(qǐng)將其與數(shù)據(jù)庫(kù)中的登錄狀態(tài)進(jìn)行比較。如果處于登錄狀態(tài)。如果頁(yè)面處于退出狀態(tài),則直接訪問(wèn)該頁(yè)面。跳轉(zhuǎn)到登錄頁(yè)所有頁(yè)面關(guān)閉時(shí),登錄狀態(tài)應(yīng)重置為退出
正常情況下,瀏覽器禁止跨域訪問(wèn)Cookie。通常,跨域cookies可以通過(guò)SSO服務(wù)獲得。其思想是:域a頁(yè)面訪問(wèn)位于域a中的服務(wù)器,驗(yàn)證權(quán)限,域a服務(wù)器與域B服務(wù)器通信,記錄一個(gè)唯一的加密字符串作為認(rèn)證域(并使用cookie)信息發(fā)送到域B服務(wù)器)域a服務(wù)器返回302跳轉(zhuǎn),跳轉(zhuǎn)到域B,并將加密字符串作為URL的一部分,從域a跳轉(zhuǎn)到域B,域B服務(wù)器通過(guò)加密字符串獲取預(yù)先從域a服務(wù)器獲取的cookie信息,并將設(shè)置cookie字段添加到響應(yīng)頭中設(shè)置cookie
正常情況下,禁止瀏覽器獲取跨域Cookie
通??梢酝ㄟ^(guò)SSO服務(wù)獲取跨域Cookie。其思想如下:
域a頁(yè)面訪問(wèn)位于域a中的服務(wù)器以驗(yàn)證權(quán)限
域a服務(wù)器與域B服務(wù)器通信,記錄一個(gè)唯一的加密字符串作為身份驗(yàn)證域(并向域B服務(wù)器發(fā)送cookie信息)
域a服務(wù)器返回302跳轉(zhuǎn),跳轉(zhuǎn)到域B,并將加密字符串作為url的一部分
頁(yè)面從域a跳轉(zhuǎn)到域B,域B服務(wù)器通過(guò)加密字符串獲取預(yù)先從域a服務(wù)器獲得的cookie信息,并在響應(yīng)頭中添加set cookie字段來(lái)設(shè)置cookie
首先,您需要知道是跨域的??缬蚴転g覽器的同源策略限制。同源策略要求通信源相同,即協(xié)議、域名和端口號(hào)完全一致。同源策略將限制兩種情況。第一種是不向不同來(lái)源的服務(wù)發(fā)送請(qǐng)求,第二種是不從不同的來(lái)源(如文檔和cookie)獲取BOM和DOM。我們通常通過(guò)解決第一個(gè)場(chǎng)景來(lái)解決跨域問(wèn)題。有三種常見的方法來(lái)解決第一種情況。
1。最常用的CORS
CORS實(shí)際上是直接在服務(wù)器上配置的,CORS位于請(qǐng)求的響應(yīng)頭中。允許的來(lái)源包括網(wǎng)站,這樣瀏覽器就不會(huì)截獲請(qǐng)求的響應(yīng)。
訪問(wèn)控制允許原點(diǎn):*
2。Jsonp
Jsonp使用script標(biāo)記跨域,并在script的SRC后添加一個(gè)回調(diào)函數(shù),請(qǐng)求可執(zhí)行的JavaScript文本。
3. Nginx轉(zhuǎn)發(fā)
Nginx轉(zhuǎn)發(fā)是一種相對(duì)安全的方法,在公司中經(jīng)常使用。只需將前端請(qǐng)求轉(zhuǎn)發(fā)到nginx配置文件中的跨域服務(wù)器IP地址