跨域大部分需要通過后台解決,引起跨域的原因:
3個問題同時滿足 才可能產生跨域問題,即跨域(協議,主機名,端口號中有一個不同就產生跨域)
下面是解決方法
方法一
// ajax請求跨域 /* *解決ajax跨域----jsonp */ function httpReq() { $.ajax({ type:"get",//必須是get請求 url: "/testJsonp", data: "data", dataType:"jsonp",//請求的數據類型 jsonp:"callback",//請求類型是回調 jsonpCallback:"callbackFunction",//數據請求成功時回調的方法 success: function (response) { console.log(response); } }); } /** * java部分 */ @Controller public class TestController { @RequestMapping(value="/testJsonp") public void testAjaxJsonp(@RequestParam String callback,HttpServletResponse response){ try { // 這里jsonp返回的數據是固定格式 文后有詳細解釋 response.getWriter().print(callback+"({\"id\":1})"); response.flushBuffer(); } catch (Exception e) { e.printStackTrace(); } } }
方法二:Java解決
-
/**設置響應頭允許ajax跨域訪問**/response.setHeader( "Access-Control-Allow-Origin","*");