<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 跨域請求及跨域攜帶Cookie解決方案

          2018-8-8    seo達(dá)人

          如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

          Web項目前后端分離開發(fā)時,經(jīng)常會遇到跨域請求和跨域攜帶Cookie的相關(guān)問題:

          跨域請求

          服務(wù)端可以根據(jù)實際需求修改下面設(shè)置,以Java代碼為做示例:

           //允許跨域的域名,*號為允許所有,存在被 DDoS攻擊的可能。
          getResponse().setHeader("Access-Control-Allow-Origin","*");
          
          //表明服務(wù)器支持的所有頭信息字段
          getResponse().setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma,Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");
          
          /** 目前測試來看為了兼容所有請求方式,上面2個必須設(shè) **/
          
          //如果需要把Cookie發(fā)到服務(wù)端,需要指定Access-Control-Allow-Credentials字段為true;
          getResponse().setHeader("Access-Control-Allow-Credentials", "true");
          
          // 首部字段 Access-Control-Allow-Methods 表明服務(wù)器允許客戶端使用 POST, GET 和 OPTIONS 方法發(fā)起請求。
          //該字段與 HTTP/1.1 Allow: response header 類似,但僅限于在需要訪問控制的場景中使用。
          getResponse().setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
          
          //表明該響應(yīng)的有效時間為 86400 秒,也就是 24 小時。在有效時間內(nèi),瀏覽器無須為同一請求再次發(fā)起預(yù)檢請求。
          //請注意,瀏覽器自身維護(hù)了一個最大有效時間,如果該首部字段的值超過了最大有效時間,將不會生效。
          getResponse().setHeader("Access-Control-Max-Age", "86400");
          
          // IE8 引入XDomainRequest跨站數(shù)據(jù)獲取功能,也就是說為了兼容IE
          getResponse().setHeader("XDomainRequestAllowed","1"); 
              
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24

          跨域請求攜帶Cookie

          服務(wù)端可以根據(jù)實際需求修改下面設(shè)置,以Java代碼為做示例:

           //如果需要把Cookie發(fā)到服務(wù)端,需要指定Access-Control-Allow-Credentials字段為true;
          response.setHeader("Access-Control-Allow-Credentials", "true");
          
          //允許跨域的域名,*號為允許所有,存在被 DDoS攻擊的可能。
          response.setHeader("Access-Control-Allow-Origin",request.getHeader("Origin"));
          
          //表明服務(wù)器支持的頭信息字段
          response.setHeader("Access-Control-Allow-Headers","content-type"); 
              
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11

          前端根據(jù)實際情況修改發(fā)起請求的ajax,示例:

           $.ajax({
              type: "POST",
              url: "實際的請求地址",
              data: {參數(shù):參數(shù)值},
              dataType: "json",
              crossDomain:true, //設(shè)置跨域為true xhrFields: {
                        withCredentials: true //默認(rèn)情況下,標(biāo)準(zhǔn)的跨域請求是不會發(fā)送cookie的 },
              success: function(data){ alert("請求成功");      
              }
          }); 
              
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15

          另外還有代理、jsonp等方式不做介紹了


          日歷

          鏈接

          個人資料

          存檔

          久久久久99精品成人片| 亚洲精品高清久久| 99精品久久久久久久婷婷| 91久久精品91久久性色| 热久久国产欧美一区二区精品| 久久久国产精品亚洲一区| 欧美一区二区久久精品| 久久99精品国产麻豆蜜芽| 国内精品久久久久久99蜜桃| 精品久久久无码人妻中文字幕 | 久久国产成人| 亚洲精品乱码久久久久久按摩 | 久久精品国产亚洲Aⅴ蜜臀色欲| 色天使久久综合网天天| 亚洲AV伊人久久青青草原| 91精品国产综合久久久久久| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久久久久久综合日本亚洲 | 2020国产成人久久精品| 一本伊大人香蕉久久网手机| 亚洲精品美女久久777777| 久久精品国产精品亜洲毛片| 欧美伊香蕉久久综合类网站| 无码人妻精品一区二区三区久久| 亚洲欧洲精品成人久久曰影片| 久久天天躁狠狠躁夜夜2020老熟妇| 国产精品99久久久久久董美香| 国内精品久久久久久久coent| 久久综合久久自在自线精品自| 久久亚洲春色中文字幕久久久| 麻豆av久久av盛宴av| 香蕉99久久国产综合精品宅男自 | 精品伊人久久大线蕉色首页| 一本综合久久国产二区| 亚洲日韩欧美一区久久久久我 | 久久久国产精品亚洲一区 | 国产精品嫩草影院久久| 国产成人久久精品麻豆一区| 99久久免费国产精品| 久久精品国产一区二区| 性欧美大战久久久久久久 |