解決ajax請求跨域


跨域大部分需要通過后台解決,引起跨域的原因:
  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解決

  1. /**設置響應頭允許ajax跨域訪問**/
    response.setHeader( "Access-Control-Allow-Origin","*");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM