跨域問(wèn)題

一、跨域產(chǎn)生的原因:因?yàn)閍jax有一個(gè)同源策略,但咱們調(diào)用的接口來(lái)自于第三方網(wǎng)站,那這里必須跨域

二、什么情況下會(huì)產(chǎn)生跨域:

協(xié)議名://二級(jí)域名.一級(jí)域名.類(lèi)型:端口號(hào)/目錄1/文件名?參數(shù)1=值&參數(shù)2=值2&參數(shù)3=值31.協(xié)議不同2.端口不同3.主域不同4.主域相同,子域不同5.域名和ip

三、跨域解決方案

jsonp:前端+后端CORS:服務(wù)端http://www.ruanyifeng.com/blog/2016/04/cors.html? 代理(服務(wù)端代理,客戶(hù)端代理)

ajax跨域錯(cuò)誤提示:

Failed to loadhttps://api.douban.com/v2/movie/search?q=%E7%BA%A2%E6%B5%B7%E8%A1%8C%E5%8A%A8: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8080' is therefore not allowed access.

vue代理實(shí)現(xiàn):

打開(kāi)vue腳手架->config->index.js,找到? dev: {proxyTable: {'/v2':{? ? target:'https://api.douban.com',//要代理的接口changeOrigin:true,//實(shí)現(xiàn)跨域pathRewrite: {'^/v2':'/v2'}? }},

jsonp實(shí)現(xiàn)原理:動(dòng)態(tài)創(chuàng)建script標(biāo)簽 ,因?yàn)閟cript中的src有跨域能力

jsonp實(shí)現(xiàn)步驟:

前端實(shí)現(xiàn):

? 第一步:動(dòng)態(tài)創(chuàng)建script標(biāo)簽,并添加callback參數(shù)

? 第二步:要?jiǎng)?chuàng)建callback函數(shù) 例如:getdata

后端實(shí)現(xiàn):

第一步:接收瀏覽器傳遞過(guò)來(lái)的callback函數(shù)? 例如:$callback=$_GET['callback'];第二步:返回函數(shù)調(diào)用形式,其內(nèi)部的參數(shù)就是json例如:echo$callback."(".$json.")";

jsonp缺點(diǎn):只支持 get請(qǐng)求

jsonp優(yōu)點(diǎn):兼容性比較好 兼容:IE5+

CORS跨域:http://www.ruanyifeng.com/blog/2016/04/cors.html

php 實(shí)現(xiàn)的cors跨域:header('Access-Control-Allow-Origin: *');

缺點(diǎn):只支持IE10+

優(yōu)點(diǎn):

1.前端無(wú)需改代碼,

2.支持所有請(qǐng)求方式 包括:post,delete,put,get

作者:奇妙雨

鏈接:http://www.itdecent.cn/p/08d47e51a5b9

來(lái)源:簡(jiǎn)書(shū)

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1. 什么是跨域? 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對(duì)不止那么狹隘。具體概念如下:只要協(xié)議...
    他在發(fā)呆閱讀 858評(píng)論 0 0
  • 1. 什么是跨域? 跨域一詞從字面意思看,就是跨域名嘛,但實(shí)際上跨域的范圍絕對(duì)不止那么狹隘。具體概念如下:只要協(xié)議...
    稍縱即逝_(tái)e5e9閱讀 234評(píng)論 0 0
  • 跨域問(wèn)題的場(chǎng)景和解決方案多種多樣,只要是做前端開(kāi)發(fā),總會(huì)遇到。而且面試時(shí)也是必問(wèn)的問(wèn)題。所以自己學(xué)習(xí)總結(jié)記錄一下。...
    花開(kāi)_陳鳳娟閱讀 779評(píng)論 0 0
  • 瀏覽器在請(qǐng)求不同域的資源時(shí),會(huì)因?yàn)橥床呗缘挠绊懻?qǐng)求不成功,這就是通常被提到的“跨域問(wèn)題”。作為前端開(kāi)發(fā),解決跨域...
    SCQ000閱讀 2,748評(píng)論 1 52
  • 跨域失敗 當(dāng)使用jsonp跨域時(shí), 1:請(qǐng)求必須是GET 2:python 寫(xiě)的webservice返回的格式是J...
    旅行家John閱讀 531評(píng)論 0 1

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