跨域解決方案

一殖氏、為什么會(huì)發(fā)生AJAX跨域
1.瀏覽器限制
2.跨域
3.XHR(XMLHttpRequest)請(qǐng)求
二、產(chǎn)生的原因
1.瀏覽器 Request Headers Origin參數(shù) 與 Response Headers 參數(shù)的驗(yàn)證
三灸拍、跨域分為簡(jiǎn)單請(qǐng)求和非簡(jiǎn)單請(qǐng)求
1.常見(jiàn)的簡(jiǎn)單請(qǐng)求 (先請(qǐng)求,后驗(yàn)證)
方法為:GET砾省、HEAD鸡岗、POST
請(qǐng)求頭:無(wú)自定義頭
Content-Type為以下幾種:
text/plain、multipart/form-data纯蛾、application/x-www-form-urlencoded
2.非簡(jiǎn)單請(qǐng)求 (先驗(yàn)證纤房,后請(qǐng)求)
put、delete方法的ajax請(qǐng)求
發(fā)送json格式的ajax請(qǐng)求
帶自定義頭的ajax請(qǐng)求
非簡(jiǎn)單請(qǐng)求會(huì)發(fā)送兩次數(shù)據(jù) 先發(fā)送預(yù)請(qǐng)求OPTIONS類型的驗(yàn)證翻诉,然后在發(fā)送真實(shí)請(qǐng)求
四炮姨、被調(diào)用方解決方案
1.服務(wù)器端實(shí)現(xiàn)
設(shè)置返回請(qǐng)求頭
//帶cookie的時(shí)候,必須域名全匹配碰煌,不可*代替
//通配的話舒岸,獲取http請(qǐng)求頭Origin參數(shù)在賦值給Access-Control-Allow-Origin
"Access-Control-Allow-Origin":"*"
"Access-Control-Allow-Origin":"http://a.com:8081"
//允許的請(qǐng)求方式
"Access-Control-Allow-Methods":"*"
//自定義請(qǐng)求頭Header參數(shù)
//通配的話,獲取http請(qǐng)求頭Access-Control-Request-Headers賦值給Access-Control-Allow-Headers
"Access-Control-Allow-Headers":"Content-Type"
//發(fā)送預(yù)請(qǐng)求緩存時(shí)間 期間只發(fā)送一次預(yù)請(qǐng)求可提高性能
"Access-Control-Max-Age":"3600"
//開(kāi)啟cookie跨域功能
"Access-Control-Max-Credentials":"true"
2.NGINX配置
nginx/conf/nginx.conf
加入 include vhost/*.conf //引入vhost下所用配置文件
nginx/vhost/a.com.conf
server{
listen 80;
server_name a.com;
location /{
proxy_pass http://localhost:8080/;
//無(wú)需變量
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Credentials true;
//nginx 獲取請(qǐng)求頭中的變量 在賦值給響應(yīng)頭
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Headers $http_access_control_request_header;
//解決預(yù)請(qǐng)求 nginx if語(yǔ)句需留空格要不語(yǔ)法報(bào)錯(cuò)
if ($request_method = OPTIONS){
return 200;
}
}
}
3.APACHE配置
apache/conf/httpd.conf
開(kāi)啟 Include conf/extra/httpd-vhosts.conf
開(kāi)啟 LoadModule 模塊
mod_vhost_alias.so
mod_proxy.so
mod_proxy_http.so
mod_negotiation.so
mod_headers.so
mod_rewrite.so
*******************************
conf/extra/httpd-vhosts.conf
VirtualHost中加入
#把請(qǐng)求頭origin值返回到Access-Control-Allow-Orign字段
Header always set Access-Control-Allow-Origin "expr=%req:origin"
#把請(qǐng)求頭的Access-Control-Request-Headers值返回給Access-Control-Allow-Headers字段
Header always set Access-Control-Headers "expr=%{res:Access-Control=Request-Headers}"
Header always set Access-Control-Allows-Methods "*"
Header always set Access-Control-Allows-Credentials "true"
Header always set Access-Control-Max-Age "3600"
****************************
#處理預(yù)檢命令OPTIONS 直接返回204
RewriteEngine ON
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ "/" [R=204,L]
</VirtualHost>

4.調(diào)用方法解決跨域-隱藏跨域-方向代理 請(qǐng)求自己域名轉(zhuǎn)發(fā)請(qǐng)求
# nginx 域名/ -> 轉(zhuǎn)發(fā) 域名/ajaxserver -> 轉(zhuǎn)發(fā)
# nginx/conf/vhost/a.com
location /{
proxy_pass http://localhost:8080
}
location /ajaxserver{
proxy_pass http://localhost:8081
}
***************************
# apache 域名/ -> 轉(zhuǎn)發(fā) 域名/ajaxserver -> 轉(zhuǎn)發(fā)
# apache/conf/extra/httpd-vhosts.conf
ProxyPass /ajaxserver http://localhost:8081
ProxyPass / http://localhost:8080

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末芦圾,一起剝皮案震驚了整個(gè)濱河市蛾派,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌个少,老刑警劉巖洪乍,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異夜焦,居然都是意外死亡壳澳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)茫经,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)巷波,“玉大人,你說(shuō)我怎么就攤上這事卸伞∧鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵荤傲,是天一觀的道長(zhǎng)垮耳。 經(jīng)常有香客問(wèn)我,道長(zhǎng)弃酌,這世上最難降的妖魔是什么氨菇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任儡炼,我火速辦了婚禮,結(jié)果婚禮上查蓉,老公的妹妹穿的比我還像新娘乌询。我一直安慰自己,他們只是感情好豌研,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布妹田。 她就那樣靜靜地躺著,像睡著了一般鹃共。 火紅的嫁衣襯著肌膚如雪鬼佣。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天霜浴,我揣著相機(jī)與錄音晶衷,去河邊找鬼。 笑死阴孟,一個(gè)胖子當(dāng)著我的面吹牛晌纫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播永丝,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼锹漱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了慕嚷?” 一聲冷哼從身側(cè)響起哥牍,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喝检,沒(méi)想到半個(gè)月后嗅辣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挠说,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年辩诞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纺涤。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抠忘,靈堂內(nèi)的尸體忽然破棺而出撩炊,到底是詐尸還是另有隱情,我是刑警寧澤崎脉,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布拧咳,位于F島的核電站,受9級(jí)特大地震影響囚灼,放射性物質(zhì)發(fā)生泄漏骆膝。R本人自食惡果不足惜祭衩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阅签。 院中可真熱鬧掐暮,春花似錦、人聲如沸政钟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)养交。三九已至精算,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碎连,已是汗流浹背灰羽。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鱼辙,地道東北人廉嚼。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像座每,于是被迫代替她去往敵國(guó)和親前鹅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 什么是AJAX峭梳? AJAX 是無(wú)需刷新頁(yè)面就能夠從服務(wù)器去的數(shù)據(jù)的一種方法舰绘,負(fù)責(zé)Ajax運(yùn)作的核心對(duì)象是XMLHt...
    新亮筆記閱讀 983評(píng)論 0 5
  • AJAX跨域產(chǎn)生的原因? 1葱椭、瀏覽器限制 2捂寿、XHR(XMLHttpRequest)請(qǐng)求 3、跨域(域名不同孵运、端口...
    BraveHeartLi閱讀 4,476評(píng)論 0 0
  • <轉(zhuǎn)>詳解跨域(最全的解決方案) 什么是跨域跨域秦陋,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的治笨,...
    涅槃快樂(lè)是金閱讀 4,741評(píng)論 0 3
  • 域:協(xié)議 + 域名 + 端口驳概;三者完全相同則為同域,反之有其一不同均為不同域旷赖∷秤郑跨域請(qǐng)求:當(dāng)前【發(fā)起請(qǐng)求】的域和【請(qǐng)...
    打不開(kāi)的回憶閱讀 5,137評(píng)論 1 51
  • 推薦指數(shù): 6.0 書(shū)籍主旨關(guān)鍵詞:特權(quán)、焦點(diǎn)等孵、注意力稚照、語(yǔ)言聯(lián)想、情景聯(lián)想 觀點(diǎn): 1.統(tǒng)計(jì)學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會(huì)...
    Jenaral閱讀 5,720評(píng)論 0 5