亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

Ajax跨域問題及解決方案(jsonp,cors)

2024-09-01 08:31:16
字體:
來源:轉載
供稿:網友

跨域

跨域有三個條件,滿足任何一個條件就是跨域

 1:服務器端口不一致
 2:協議不一致
 3:域名不一致

解決方案:

1.jsonp

  在遠程服務器上設法動態的把數據裝進js格式的文本代碼段中,供客戶端調用和進一步處理;在前臺通過動態添加script標簽及src屬性,表面看上去與ajax極為相似,但是,這和ajax并沒有任何關系;為了便于使用及交流,逐漸形成了一中非正式傳輸協議,人們把它稱作 jsonp 。

代碼如下:

html:

<body>  <form action="/" method="post" enctype="multipart/form-data">    <input type="text" name="xinxi" id="info"><br>    <input type="file" name="file" id="file"><br>    <input type="button" value="提交" name="submit" id="btn">  </form></body><script src="./jquery.js"></script><script>  //提前寫好函數,調用函數需要傳參  function callback(data){    alert(data);  }  //動態添加script標簽及src屬性  $('#btn').on('click',function(){    var sc = document.createElement('script');    sc.src = 'http://soul:8888/kuayu?cb=callback';    $('head').append(sc);   })</script>  

js:

var http = require('http'); var url = require('url'); var server = http.createServer(); server.listen('8888',function(){   console.log('8888'); }); server.on('request',function(req,res){   var urls = url.parse(req.url,true);   if(urls.pathname == '/kuayu'){     res.end('callback("jsonp")');//返回的數據需是前端定義的函數調用的形式   } });

 運行結果:

 總結一下:

  jsonp的一個要點就是允許用戶傳遞一個callback參數給服務端, 然后服務端返回數據時會將這個callback參數作為函數名來包裹住JSON數據, 這樣客戶端就可以隨意定制自己的函數來自動處理返回數據了。

  發現凡是擁有"src"這個屬性的標簽都擁有跨域的能力,比如script、img、iframe; src 的能力就是把遠程的數據資源加載到本地(圖片、JS代碼等);

2.cors

cors跨域的核心點是在服務端代碼中設置一個響應頭即可

res.setHeader('Access-Control-Allow-Origin','*');

 html:

<body>  <form action="/" method="post" enctype="multipart/form-data" id="form">    <input type="text" name="xinxi" id="info"><br>    <input type="button" value="提交" name="submit" id="btn">  </form></body><script src="./jquery.js"></script><script>  $('#btn').on('click', function () {              $.ajax({            url: 'http://soul:8888/kuayu',            type:'delete',              async:false,            success: function (data) {              alert(data);            },        })  })</script>

js代碼:

<body>  <form action="/" method="post" enctype="multipart/form-data" id="form">    <input type="text" name="xinxi" id="info"><br>    <input type="button" value="提交" name="submit" id="btn">  </form></body><script src="./jquery.js"></script><script>  $('#btn').on('click', function () {              $.ajax({            url: 'http://soul:8888/kuayu',            type:'delete',              async:false,            success: function (data) {              alert(data);            },        })  })</script>

效果:

   很多人也認為使用CORS解決跨域很簡單,只需要在服務器添加響應頭 “ Access-Control-Allow-Origin :* ” 就可以了,

其實不然,因為在CORS中,所有的跨域請求被分為了兩種類型,一種是簡單請求,一種是復雜請求 (嚴格來說應該叫‘需預檢請求');簡單請求與普通的ajax請求無異;但復雜請求,必須在正式發送請求前先發送一個OPTIONS方法的請求已得到服務器的同意,若沒有得到服務器的同意,瀏覽器不會發送正式請求;

滿足以下所有條件,被視為簡單類型的請求:

1:請求方法必須是 GET、HEAD、POST中的一種,其他方法不行;

2:請求頭類型只能是 Accept、Accept-Language、Content-Language、Content-Type,添加其他額外請求頭不行;

3:請求頭 Content-Type 如果有,值只能是 text/plain、multipart/form-data、application/x-www-form-urlencoded 中的一種,其他值不行;

4:請求中的任意 XMLHttpRequestUpload  對象均沒有注冊任何事件監聽器;

5:請求中沒有使用 ReadableStream 對象。(以上摘自西嶺老濕微信公眾號)

總結一下:

如果請求方式為get和post簡單請求,則只需要設置響應頭:res.setHeader('Access-Control-Allow-Origin','*');來允許某一個域 或者 所有域進行數據共享;

若是其他方式的請求,會在發送真正的請求之前發送一個options請求,通過options請求里設置:res.setHeader('Access-Control-Allow-Methods', 'DELETE'),

告知服務器正式請求會使用哪一種 HTTP 請求方法。

總結

以上所述是小編給大家介紹的Ajax跨域問題及解決方案(jsonp,cors),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久人成影片一区二区三区| 久久亚洲精品毛片| 亚洲日韩欧美视频一区| 日韩在线观看免费全集电视剧网站| 2023亚洲男人天堂| 成人免费在线视频网址| 欧美精品一区在线播放| 国产精品第一区| 日韩大胆人体377p| 国产精品九九久久久久久久| 日韩一二三在线视频播| 国产国产精品人在线视| 欧美日韩亚洲一区二| 欧美日韩国产一区二区三区| 亚洲少妇激情视频| 77777少妇光屁股久久一区| 最近的2019中文字幕免费一页| 欧美日韩国产丝袜美女| 欧美中在线观看| 97精品国产97久久久久久| 国产一区二区三区久久精品| 日韩一区二区三区国产| 亚洲精品福利视频| 亚洲欧洲成视频免费观看| 国产精品丝袜久久久久久不卡| 永久免费精品影视网站| 91大神福利视频在线| 国产丝袜精品第一页| xvideos亚洲人网站| 亚洲精品之草原avav久久| 亚洲免费中文字幕| 亚洲图片制服诱惑| 欧美肥臀大乳一区二区免费视频| 欧美性极品少妇精品网站| 亚洲黄色片网站| 亚洲另类欧美自拍| 亚洲男人天堂视频| 茄子视频成人在线| 色妞色视频一区二区三区四区| 日韩精品日韩在线观看| 亚洲网站在线观看| 91网在线免费观看| 成人有码视频在线播放| 欧美性猛交xxxx偷拍洗澡| 色多多国产成人永久免费网站| 亚洲色图日韩av| 欧美午夜精品久久久久久久| 亚洲欧美成人精品| 亚洲综合视频1区| 日韩欧美精品网址| 亚洲综合小说区| 亚洲精品国产成人| 精品福利免费观看| 国产一区二区在线免费| 亚洲欧美中文日韩在线v日本| 日韩久久午夜影院| 欧美午夜宅男影院在线观看| 日韩在线观看免费av| 亚洲高清免费观看高清完整版| 91亚洲精品久久久久久久久久久久| 一本色道久久88亚洲综合88| 国产小视频国产精品| 久久久天堂国产精品女人| 中文字幕亚洲专区| 亚洲欧美中文在线视频| 精品国产福利视频| 日韩在线视频观看正片免费网站| 亚洲区免费影片| 久久免费国产视频| 日韩一区二区三区xxxx| 国产精品一区二区3区| zzijzzij亚洲日本成熟少妇| 国产精品丝袜久久久久久不卡| 亚洲石原莉奈一区二区在线观看| 超碰97人人做人人爱少妇| 欧美日韩精品国产| 日韩视频永久免费观看| 日韩av高清不卡| 亚洲国产精品成人va在线观看| 国产精品一二三视频| 97精品国产97久久久久久春色| 久久亚洲精品中文字幕冲田杏梨| 亚洲性夜色噜噜噜7777| 欧美高清在线观看| 亚洲激情第一页| 91亚洲精品久久久久久久久久久久| 亚洲精品电影久久久| 亚洲精品丝袜日韩| 不卡中文字幕av| 在线看国产精品| 欧美视频国产精品| 中文字幕日韩有码| 亚洲欧美日韩精品久久亚洲区| 久久免费精品日本久久中文字幕| 久久精品精品电影网| 亚洲肉体裸体xxxx137| 亚洲人在线观看| 亚洲成色999久久网站| 亚州国产精品久久久| 久久777国产线看观看精品| 国产欧美日韩高清| 国产福利精品视频| 国产一区二区三区在线播放免费观看| 国产日韩欧美日韩| 91在线网站视频| 91久久久亚洲精品| 亚洲一区二区日本| 亚洲欧美制服综合另类| 国产欧美一区二区三区在线| 欧美亚洲另类激情另类| 91社影院在线观看| 日韩女优人人人人射在线视频| 午夜精品一区二区三区在线视| 国产一区二区三区在线观看视频| 国产suv精品一区二区三区88区| 国产精品国产自产拍高清av水多| 亚洲乱码一区二区| 欧美激情小视频| 国产亚洲精品美女久久久久| 欧美在线视频网| 欧美视频二区36p| 国产69精品久久久久9999| 奇米四色中文综合久久| 亚洲精选在线观看| 国语自产精品视频在线看| 日韩日本欧美亚洲| 亚洲成人网在线| 国产亚洲精品一区二555| 亚洲国产成人爱av在线播放| 91经典在线视频| 欧美日韩亚洲一区二区三区| 91精品国产91久久久久久吃药| 中文字幕国产亚洲2019| 在线不卡国产精品| 国产亚洲人成网站在线观看| 欧美壮男野外gaytube| 91精品成人久久| 国产一区玩具在线观看| 欧美日韩免费看| 一夜七次郎国产精品亚洲| 亚洲国产一区二区三区在线观看| 中文字幕成人精品久久不卡| 欧美性生交大片免网| 青青在线视频一区二区三区| 韩国三级电影久久久久久| 亚洲欧美日韩中文在线制服| 亚洲欧美精品suv| 国产在线精品成人一区二区三区| 亚洲欧美成人网| 久久全国免费视频| 久久99国产综合精品女同| 亚洲国产私拍精品国模在线观看| 久久久免费高清电视剧观看| 亚洲性日韩精品一区二区| 亚洲成人黄色网址| 亚洲精品久久久久久久久久久久久| 久久视频免费观看| 欧美成人中文字幕| 91高清免费在线观看| 国产成人精品一区| 国内精品久久久久| 萌白酱国产一区二区| 日韩精品免费在线观看| 精品久久中文字幕|