作爲一個剛出道的小白,懂的並不是很多,也許這個問題已經在百度上有很多的解決方案,今天就把自己的理解寫上去
正所謂開局一張圖,其他全靠編。
啊哈 正如你所看到的,我們在http://localhost:9091的時候,需要去調用http://localhost:9092的東西,然後報錯了
問題產生的原因:
當我們在使用Ajax的時候,通過Ajax技術去訪問跨域的接口的時候,會出現一個同源問題(協議,IP,以及端口)
經查看JQueryAPI資料,發現
看完以上的API作何感想呢?是不是還是處於蒙圈的狀態,其實兜兜轉轉簡單一點好。就是在使用Ajax訪問的時候,加上dataType:‘jsonp’ , jsonpCallback作爲回調函數名,可以接收你返回的數據。
解決辦法我具體提供了以下兩種方案
問題的解決
1.用自己的手段來解決(最老的方式--不知道會不會出問題)
(1)採用他中間的一個漏洞,那就是src, 後面的callback作爲回調參數調用
客戶端:<script src="這個訪問的路徑是沒有限制的?callback=deal">
服務端(接收傳輸過來的callback,然後將其返回到前端去,當然返回到前端的是一個方法return callback+"(data爲json格式 的)")
2.使用ajax本身來解決
2.1.表面上看來我們採用的ajax方式,實際上我們改變了客戶端和服務端交互的本質(加上dataType:jsonp格式)
2.2因爲以前Ajax的本質是XMLHttpRequest
2.3加上之後的本質變成了<script>的方式
JsonCallback: 'call'--->回調函數,接收數據,傳輸到前端的方法接收。
最後加一句,這個只是個人的見解,有不同見解的歡迎在下面留言評論
最後的最後雙手附上JQuery1.8的API
鏈接: https://pan.baidu.com/s/1XnoDzRomLUo7f0ES4Bbu5w 提取碼: f9dg 複製這段內容後打開百度網盤手機App,操作更方便哦