原因
工作上遇到的要求需要后臺ajax獲取一些信息,怕麻煩就用HBuilder來編譯靜態的html和eclipse來編譯相關的java代碼了,不過由于跨域的問題,導致無法進行前后臺的數據交互,那么什么是跨域?
跨域
用表格來說明比較方便
跨域
解決方案
jsonp
Web頁面上調用js文件時則不受是否跨域的影響(不僅如此,我們還發現凡是擁有”src”這個屬性的標簽都擁有跨域的能力所以跨域訪問數據就只有一種可能,那就是在遠程服務器上設法把數據裝進js格式的文件里,供客戶端調用和進一步處理;web客戶端通過與調用腳本一模一樣的方式,來調用跨域服務器上動態生成的js格式文件(一般以JSON為后綴),顯而易見,服務器之所以要動態生成JSON文件,目的就在于把客戶端需要的數據裝入進去。為了便于客戶端使用數據,逐漸形成了一種非正式傳輸協議,人們把它稱作JSONP,該協議的一個要點就是允許用戶傳遞一個callback參數給服務端,然后服務端返回數據時會將這個callback參數作為函數名來包裹住JSON數據,這樣客戶端就可以隨意定制自己的函數來自動處理返回數據了。
實際代碼
$.ajax({ url: url, dataType: 'jsonp', jsonp: "jsonpCallback", data: { }, success: function(data) { console.log(data); } });
就是那么簡單 在url下添加dataType 和 jsonp即可