一篇關於ajax跨域問題的解決方案


 

這幾天沒事,我有一個好友,讓我幫他做一個機器人對話demo, 我說 看看有沒有時間(其實自己一臉懵逼)

然后百度了一下,發現了一個機器人  -(連接就不弄出來了,可以私底下交流) ,,我是用這個的

 

 

 

 

好 就這個了,基本的對話都可以實現, 打算接她的url 來個偷梁換柱(哈哈)

 

獲取他的實現對話地址 ,發現了

 

 {"content":"suggest:你好"}  這不就是我剛剛輸入的嘛?

然后找到他返回的結果

 

 

 

沒錯,就是他了

然后自己使用ajax  ,對他接口進行封裝(此出代碼     就不弄出來了,畢竟這是別人的接口,搞的滿大街都這樣弄,人家怎么賺錢...)

 

 $.ajax({
 2     type:"get",    //請求方式 
 4     url:"地址", 
 8     data:{"query":"civilnews"},    //請求參數,用戶輸入參數
 9 
10     beforeSend: function() {
11         //請求前的處理
12     },
13 
14     success: function(data) {
15         //請求成功處理,和本地回調完全一樣
16     },
17 
18     complete: function() {
19         //請求完成的處理
20     },
21 
22     error: function(error) {
console.log(error)
23 //請求出錯處理 24 } 25 });

 

結果報錯

 

自己貼代碼百度,然后才知道,這是跨域問題引起的,事實也是,你調用別人接口,怎么可能服務地址相同呢?

不說了,自己解決

百度 看了看  有三種解決方法(我所知道的)

如何解決ajax跨域

  • JSONP方式
  • CORS方式
  • 代理請求方式

目前也沒有什么好的辦法,加上也趕時間,看了一下,發現jsonp方法最簡單,便捷

於是就選擇了他

 

1 $.ajax({
 2     type:"get",    //請求方式 
 4     url:"http://www.domain.net/url",
 5     dataType:"jsonp",    //跨域json請求一定是jsonp
 6     jsonp: "callbackparam",    //跨域請求的參數名,默認是callback
 7         //jsonpCallback:"successCallback",    //自定義跨域參數值,回調函數名也是一樣,默認為jQuery自動生成的字符串
 8     data:{"query":"civilnews"},    //請求參數
 9 
10 
14     success: function(data) {
15         //請求成功處理,和本地回調完全一樣
16     },
17
   error: function(error) {
console.log(error) 23 //請求出錯處理 24 }
25 });

 

 

 

ok  現在刷新重新輸入,就可以獲取返回的結果了

(代碼放在公司的...) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM