Ajax跨域查詢完美解決通過$.getJSON()實現
來源:懂視網
責編:小采
時間:2020-11-27 22:52:20
Ajax跨域查詢完美解決通過$.getJSON()實現
Ajax跨域查詢完美解決通過$.getJSON()實現:原因:瀏覽器安全上做了限制,禁止ajax跨域獲得數據。 解決方法:通過jquery提供的$.getJSON()可以跨域獲得JSON格式的數據。優點:兼容性強。Java后臺代碼: 代碼如下:protected void doPost(HttpServletRequest req, HttpServ
導讀Ajax跨域查詢完美解決通過$.getJSON()實現:原因:瀏覽器安全上做了限制,禁止ajax跨域獲得數據。 解決方法:通過jquery提供的$.getJSON()可以跨域獲得JSON格式的數據。優點:兼容性強。Java后臺代碼: 代碼如下:protected void doPost(HttpServletRequest req, HttpServ

原因:瀏覽器安全上做了限制,禁止ajax跨域獲得數據。
解決方法:通過jquery提供的$.getJSON()可以跨域獲得JSON格式的數據。優點:兼容性強。
Java后臺代碼:
代碼如下:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String callback =req.getParameter("callback");//jquery生成的自定義函數名
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
//返回json格式字符串,注意向前臺
輸出的格式必須為 callback(json格式的字符串);
//callback是jquery生成的自定義函數名,返回這種格式,前臺jquery代碼會自動替換
//回調函數為此callback函數,從而達到跨域的效果,網上還有其他的跨域方案如:AJAJ
//原理應該也是和此方法一樣。缺點是:返回數據量不宜過大,安全性差,建議重要數據不
//要通過這種形式傳遞。
out.print(callback+"({name:'111',sex:'222'});");
out.flush();
out.close();
}
Js前臺調用代碼:
代碼如下:
$(function(){
//需要傳的參數,可以不傳。
var data= {param1:"param1",param2:"param2"};
//注意url一定要以callback=?的形式拼接,callback參數名可以自定義,
//但后臺必須也要同步獲取的參數名
var url = 'http://192.168.1.216:8080/DSFA/getUser?callback=?';
$.getJSON(url,data,function(backdata){
//其實后臺返回的函數已經替換為此函數,所以backdata
//就是你從后臺傳過來的json對象。
alert(backdata);
});
})
如果有不明白的地方,請留言....
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
Ajax跨域查詢完美解決通過$.getJSON()實現
Ajax跨域查詢完美解決通過$.getJSON()實現:原因:瀏覽器安全上做了限制,禁止ajax跨域獲得數據。 解決方法:通過jquery提供的$.getJSON()可以跨域獲得JSON格式的數據。優點:兼容性強。Java后臺代碼: 代碼如下:protected void doPost(HttpServletRequest req, HttpServ