前言:前兩天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)頭信息,即可實(shí)現(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ù)器上。
寫的不好的地方還望大家及時反饋與糾正袄秩,本著共同學(xué)習(xí)與進(jìn)步宗旨不斷前進(jìn)U篝帷!之剧!