跨域解決方案

前言:前兩天PC端商城開發(fā)到最后階段,準(zhǔn)備放到測試服務(wù)器,發(fā)現(xiàn)post接口出錯,想到是存在跨域,什么是跨域,以及跨域的解決方案。
同一協(xié)議下,同一域名。同一端口下的訪問屬于同源策略,除此之外都是跨域。跨域的解決方式有兩種,一種是客戶端解決,一種是服務(wù)端解決。

1、jsonp解決方案

jsonp的原理就是利用script標(biāo)簽的src屬性動態(tài)加載,不受同源策略的影響.

var scrt = document.createElement('script');
scrt.src = 'http://www.baidu.com/a.json?callback=jsonStr';
document.body.appendChild(scrt);

var jsonStr = function (data){
  alert(data);
}

僅支持get請求

2、通過CORS解決

CORS是什么 cross-origin-resource-sharing 跨域資源共享,它允許瀏覽器向跨源服務(wù)器發(fā)送http請求,克服了ajax同源請求資源的限制。瀏覽器發(fā)現(xiàn)ajax請求資源,就會自動添加頭信息,服務(wù)端只需要添加相關(guān)響應(yīng)頭信息,即可實現(xiàn)ajax跨域請求。但是cors請求有兼容性 IE8 - ie9不兼容此此策略。瀏覽器先以options請求方式發(fā)送預(yù)請求,從而獲知對跨域資源請求所支持的http方法。

3、node轉(zhuǎn)發(fā)層搭建

慎重選擇是否搭建中轉(zhuǎn)層,意味著性能的,服務(wù)器壓力,開銷都會相應(yīng)的增加。

4、nginx 反向代理

通過nginx解析url,判斷到底應(yīng)該轉(zhuǎn)發(fā)到哪臺服務(wù)器上。

http://blog.720ui.com/2016/web_cross_domain/


寫的不好的地方還望大家及時反饋與糾正,本著共同學(xué)習(xí)與進步宗旨不斷前進?。。?/p>

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

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

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