1:在作微信公衆平臺上的開發時,發現,原本在pc端好好的ajax請求,到了手機頁面上就無效了,用UC開發者手機瀏覽器鏈接pc測試,發現手機上的頁面後臺請求,ajax原本是get變成了options了,搞了很久,最後解決了。問題的緣由http://www.clanfei.com/2012/08/1637.html這個連接上文章解釋了引起跨域的緣由。html
2:我用jQuery的方式解決的,http://api.jquery.com/jQuery.getJSON/兩種解決思路,java
(1) 第一種方法是在ajax函數中設置dataType爲'jsonp':jquery
(2) 第二種方法是利用getJSON來實現,只要在地址中加上callback=?參數便可:ajax
我是經過第二種方式,數據庫
js中的代碼:json
var data= {id:2};//傳參數 //注意url必定要以callback=?的形式拼接,callback參數名能夠自定義, var url = 'http://weixin.hehehe.com/filing/charge.json?callback=?'; $.getJSON(url,data,function(backdata){ alert(backdata)//後臺返回json格式的數據 });
java後臺的代碼api
@RequestMapping(value = "filing/charge", method = RequestMethod.GET) public void charge(Integer id, HttpServletRequest request, HttpServletResponse response) throws IOException { String callback = request.getParameter("callback");//jquery生成的自定義函數名 response.setCharacterEncoding("UTF-8"); response.setContentType("text/json;charset=utf-8"); PrintWriter out = response.getWriter(); out.print(callback + "("+ JSON.toJSONString(list)+")"); out.flush(); out.close(); }
這裏面的list是一個後臺數據庫查詢的list集合,把這個list集合轉換成json格式傳到前臺js中.跨域
到此就解決ajax跨域的問題了。瀏覽器
後續有不少開發填坑的文章發佈,若是對你有幫助,請支持和加關注一下微信