• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

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


    日歷

    鏈接

    個人資料

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

    存檔

    主站蜘蛛池模板: 国产360激情盗摄一区在线观看| 国产精品青草视频免费播放| 国产亚洲欧美日韩综合一区在线观看| 国产女人91精品嗷嗷嗷嗷| 亚洲男人的天堂2019| 久久福利网| 熟女俱乐部五十路六十路AV | 欧美另类视频一区二区三区| 内地偷拍一区二区三区| 伊在人亚洲香蕉精品区麻豆| 国产颜射视频在线播放| 日本精品成人一区二区三区视频 | 亚洲图片一区二区三区| 四虎永久精品视频在线观看| 日本成人在线不卡视频| 人妻少妇看A偷人无码电影 | 五十老熟妇乱子伦免费观看| 精品精品国产欧美在线观看| 久久午夜无码鲁丝片秋霞| 麻豆AⅤ精品无码一区二区| 色偷偷av男人的天堂不卡| 萌白酱福利视频| 精品中文字幕有码视频| 青草青草伊人精品视频| 国产成人综合网在线观看| 午夜精品久久久久久久99热| 无码专区—va亚洲v天堂麻豆| 香蕉久久夜色国产精品| 国产在线播放不卡免费视频| 亚洲女人av久久天堂| 福利一区一区二区刺激| 久久婷婷成人综合色综合| 97久久超碰极品视觉盛宴 | 国产盗摄老熟女视频一区二区三区| 内江市| 欧美日韩亚洲精品综合乱在线 | 国产精品一级在线播放| 国产成人精品久久综合| 四虎国产精品成人影院| 亚洲国产综合专区在线播放| 亚洲欧美日韩精品专区52|