<thead id="kdfuf"><font id="kdfuf"></font></thead>
<samp id="kdfuf"></samp>
    <nav id="kdfuf"><strong id="kdfuf"></strong></nav>
      中文字幕无码一区二区三区在线,久久精品人人做人人爽,国产一级内射无挡观看,十八禁在线黄色网站,日韩欧美国产另类久久久精品 ,少妇人妻偷人精品一区二区,久久午夜视频,亚洲春色AⅤ无码专区

      Http訪問跨域解決

      2018-3-23    seo達人

      如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

      一、跨域科普

      跨域,即跨站HTTP請求(Cross-site HTTP request),指發起請求的資源所在域不同于請求指向資源所在域的HTTP請求。

      二、如何產生跨域

      當使用前后端分離,后端主導的開發方式進行前后端協作開發時,常常有如下情景:

          a、后端開發完畢在服務器上進行部署并給前端API文檔。
          b、前端在本地進行開發并向遠程服務器上部署的后端發送請求。
          c、在這種開發過程中,如果前端想要一邊開發一邊測試接口,就需要使用跨域的方式。

      三、解決方案

      1、JQuery+ajax+jsonp 跨域訪問

      Jsonp(JSON with Padding)是資料格式 json 的一種“使用模式”,可以讓網頁從別的網域獲取資料。

      下面給出例子:

      html 前端代碼:

      [html] view plain copy
      1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">    
      2. <html>    
      3. <head>    
      4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    
      5. <title>Insert title here</title>    
      6. <script type="text/javascript" src="resource/js/jquery-1.7.2.js"></script>    
      7. </head>    
      8. <script type="text/javascript">    
      9. $(function(){       
      10.  /*    
      11.  //簡寫形式,效果相同    
      12.  $.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",    
      13.          function(data){    
      14.              $("#showcontent").text("Result:"+data.result)    
      15.  });    
      16.  */    
      17.  $.ajax({    
      18.      type : "get",    
      19.      async:false,    
      20.      url : "http://app.example.com/base/json.do?sid=1494&busiId=101",    
      21.      dataType : "jsonp",//數據類型為jsonp    
      22.      jsonp: "jsonpCallback",//服務端用于接收callback調用的function名的參數    
      23.      success : function(data){    
      24.          $("#showcontent").text("Result:"+data.result)    
      25.      },    
      26.      error:function(){    
      27.          alert('fail');    
      28.      }    
      29.  });     
      30. });    
      31. </script>    
      32. <body>    
      33. <div id="showcontent">Result:</div>    
      34. </body>    
      35. </html>    

      服務器端:

      [java] view plain copy
      1. import java.io.IOException;    
      2. import java.io.PrintWriter;    
      3. import java.util.HashMap;    
      4. import java.util.Map;    
      5. import javax.servlet.http.HttpServletRequest;    
      6. import javax.servlet.http.HttpServletResponse;    
      7. import net.sf.json.JSONObject;    
      8. import org.springframework.stereotype.Controller;    
      9. import org.springframework.web.bind.annotation.RequestMapping;    
      10.      
      11. @Controller    
      12. public class ExchangeJsonController {    
      13.  @RequestMapping("/base/json.do")    
      14.  public void exchangeJson(HttpServletRequest request,HttpServletResponse response) {    
      15.     try {    
      16.      response.setContentType("text/plain");    
      17.      response.setHeader("Pragma""No-cache");    
      18.      response.setHeader("Cache-Control""no-cache");    
      19.      response.setDateHeader("Expires"0);    
      20.      Map<String,String> map = new HashMap<String,String>();     
      21.      map.put("result""content");    
      22.      PrintWriter out = response.getWriter();         
      23.      JSONObject resultJSON = JSONObject.fromObject(map); //根據需要拼裝json    
      24.      String jsonpCallback = request.getParameter("jsonpCallback");//客戶端請求參數    
      25.      out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式數據    
      26.      out.flush();    
      27.      out.close();    
      28.    } catch (IOException e) {    
      29.     e.printStackTrace();    
      30.    }    
      31.  }    
      32. }    

      2、通過注解的方式允許跨域

      在Controller類或其方法上加@CrossOrigin注解,來使之支持跨域。

      舉例:
      [java] view plain copy
      1. @CrossOrigin(origins = "*", maxAge = 3600)  
      2. @RestController  
      3. @RequestMapping("/User")  
      4. public class UserController {  
      5. }  

      其中origins為CrossOrigin的默認參數,即跨域來源,*即任何來源,也可以是其他域名。即可以以以下形式:

      [java] view plain copy
      1. @CrossOrigin("http://test.com")  
      2. @CrossOrigin(origins="http://test.com",maxAge=3600)  

      該注解用于方法上,寫法相同,處理時,SpringMVC會對類上標簽和方法上標簽進行合并。

      3、通過配置文件的方式允許跨域

      在web.xml中添加如下配置:

      [html] view plain copy
      1. <filter-mapping>   
      2.     <filter-name>CorsFilter</filter-name>   
      3.     <url-pattern>/*</url-pattern>   
      4. </filter-mapping>  
      使用這個Filter即可讓整個服務器全局允許跨域。

      藍藍設計www.tuitetiyu.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務


      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.tuitetiyu.cn

      存檔

      主站蜘蛛池模板: 公交车挺进朋友人妻的身体里| 婷婷久久香蕉五月综合加勒比 | 成人福利一区二区视频在线| 国产成在线观看免费视频成本人| 亚洲国产成人久久| 激情久久五月天av无码| 国产成人精品性色av麻豆| 免费人成网站在线观看99| 国产成人精品a视频| 婷婷综合缴情亚洲| 夜费特欧美一夜真人大片| av在线播放无码线| 日韩VA无码中文字幕不卡| 亚洲永久免费视频| 国产对白清晰刺激野战 | av一本久道久久波多野结衣| 日本丰满大乳乳液| 国产疯狂伦交大片| 婷婷久久人人爽人人爽| 国产精品免费久久久久三级无码| 国产精品无码无片在线观看3d| 亚洲国产中文美国国产综合一区| 久久国产精品-国产精| 国产精品久久不卡日韩美女| 香蕉蕉亚亚洲aav综合| 国产99视频精品观看蕾| 额济纳旗| 国产女主播精品| 视频思思久久免费国产| 91嫩草国产在线| 欧美老妇激情XXXX| 东莞性视频88XXX| 五月激情亚洲开心| 亚洲色偷偷综合亚洲AV| 亚洲中文无码MV| 无码国内精品久久人妻蜜桃| 99V久久综合狠狠综合久久 | 91久久精品日日躁夜夜躁欧美| 国产精品无码久久久久久久久久久| 内射无套内射国产精品视频| 亚洲国产中文日韩欧美在线看片|