js跨域及多種解決方法

同源策略:

它是瀏覽器?最核心也最基本的安全功能,——不同的客戶端腳本在沒(méi)有明確授權(quán)的情況下,不能讀寫對(duì)方資源

跨域: 只要協(xié)議,域名,端口有任何一個(gè)不同,的都被當(dāng)做不同的域


解決跨域問(wèn)題 :

? ?參考網(wǎng)址:https://www.cnblogs.com/yoissee/p/5901677.html

? ? 方法一:

?? ??? ?JSONP 是 JSON 的一種使用模式,可以解決主流瀏覽器的跨域數(shù)據(jù)訪問(wèn)問(wèn)題。其原理是根據(jù) XmlHttpRequest 對(duì)象受到同源策略的影響,而?<script>?標(biāo)簽元素卻不受同源策略影響,可以加載跨域服務(wù)器上的腳本,網(wǎng)頁(yè)可以從其他來(lái)源動(dòng)態(tài)產(chǎn)生 JSON 資料。用 JSONP 獲取的不是 JSON 數(shù)據(jù),而是可以直接運(yùn)行的 JavaScript 語(yǔ)句。

jsonp

1. 只能使用 GET 方法發(fā)起請(qǐng)求,這是由于?script?標(biāo)簽自身的限制決定的。

2.不能很好的發(fā)現(xiàn)錯(cuò)誤,并進(jìn)行處理。與 Ajax 對(duì)比,由于不是通過(guò) XmlHttpRequest 進(jìn)行傳輸,所以不能注冊(cè) success、 error 等事件監(jiān)聽(tīng)函數(shù)。

CORS:

?? ??? ?Cross-Origin Resource Sharing(CORS)跨域資源共享是一份瀏覽器技術(shù)的規(guī)范,提供了 Web 服務(wù)從不同域傳來(lái)沙盒腳本的方法,以避開(kāi)瀏覽器的同源策略,是 JSONP 模式的現(xiàn)代版。與 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以讓網(wǎng)頁(yè)設(shè)計(jì)師用一般的 XMLHttpRequest,這種方式的錯(cuò)誤處理比 JSONP 要來(lái)的好。另一方面,JSONP 可以在不支持 CORS 的老舊瀏覽器上運(yùn)作?,F(xiàn)代的瀏覽器都支持 CORS。

?CORS 的實(shí)現(xiàn)

app.post('/cors', function(req, res) {

?res.header("Access-Control-Allow-Origin", "*"); //設(shè)置請(qǐng)求來(lái)源不受限制

????res.header("Access-Control-Allow-Headers", "X-Requested-With");??

????res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); //請(qǐng)求方式

????res.header("X-Powered-By", ' 3.2.1')

????res.header("Content-Type", "application/json;charset=utf-8");

????var data = {

????????name: req.body.name + ' - server 3001 cors process',

????????id: req.body.id + ' - server 3001 cors process'

????}

????console.log(data)

????res.send(data)

????res.end()

})

CORS 與 JSONP 的對(duì)比

CORS 除了 GET 方法外,也支持其它的 HTTP 請(qǐng)求方法如 POST、 PUT 等。

CORS 可以使用 XmlHttpRequest 進(jìn)行傳輸,所以它的錯(cuò)誤處理方式比 JSONP 好。

JSONP 可以在不支持 CORS 的老舊瀏覽器上運(yùn)作。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容