国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java跨域問題的處理詳解

Java跨域問題的處理詳解

2020-08-24 10:46謝小飛 Java教程

這篇文章主要給大家介紹了關于Java跨域問題處理的相關資料,文中介紹的非常詳細,相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。

前言

相信大家在寫前端腳本的時候經(jīng)常會遇到發(fā)送數(shù)據(jù)到后臺的情況,但是由于瀏覽器的限制,不同域名之間的數(shù)據(jù)是不能互相訪問的,那前端怎么和后端如何進行數(shù)據(jù)之間的交換呢?

JavaScript由于安全性方面的考慮,不允許頁面跨域調(diào)用其他頁面的對象,那么問題來了,什么是跨域問題?

答:這是由于瀏覽器同源策略的限制,現(xiàn)在所有支持JavaScript的瀏覽器都使用了這個策略。那么什么是同源呢?所謂的同源是指三個方面“相同”:

  1. 域名相同
  2. 協(xié)議相同
  3. 端口相同

下面就舉幾個例子來幫助更好的理解同源策略。

 

URL 說明 是否允許通信
http://www.a.com/a.js 
http://www.a.com/b.js
同一域名 允許
http://www.a.com/a.js 
http://www.b.com/a.js
不同域名 不允許
http://www.a.com:8000/a.js
http://www.a.com/b.js
同一域名不同端口 不允許
https://www.a.com/a.js 
http://www.a.com/b.js
同一域名不同協(xié)議 不允許

 

在JAVA中處理跨域問題,通常有以下兩種常用的解決方法。

第一種解決方法

后臺代碼在被請求的Servlet中添加Header設置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
response.setHeader("Access-Control-Allow-Origin", "*");
PrintWriter out =null;
try
{
 out = response.getWriter();
} catch (IOException e)
{
 // TODO Auto-generated catch block
 e.printStackTrace();
}
out.print("{'status':'ok'}");
out.flush();
out.close();

Access-Control-Allow-Origin這個Header在W3C標準里用來檢查該跨域請求是否可以被通過,如果值為*則表明當前頁面可以跨域訪問。默認的情況下是不允許的。

在前端JS中需要向Servlet發(fā)出請求,請求代碼如下所示:

?
1
2
3
4
5
6
7
8
9
10
$.ajax({
 url: "your url",
 type:"get or post",
 dataType:"json",
 data:{
 ....
 },
 success:function(data){
 ...
 }

第二種解決方法

通過jsonp跨域請求的方式。JSONP和JSON雖然只有一個字母的區(qū)別,但是他們完全就是兩回事,很多人很容易把他們搞混。JSON是一種數(shù)據(jù)交換的格式,而JSONP則是一種非官方跨域數(shù)據(jù)交互協(xié)議。

首先來說一下前端JS是怎么發(fā)送請求。代碼如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$.ajax({
 url:"your url",
 type:"get or post",
 async:false,
 dataType : "jsonp",
 //服務端用于接收callback調(diào)用的function名的參數(shù)
 jsonp:"callbackparam",
 //callback的function名稱
 jsonpCallback:"success_jsonpCallback",
 success:function(data){
 console.log(data);
 },
 error:function(data){
 console.log(data);
 }
});

這里的callbackparam和success_jsonpCallback可以理解為發(fā)送的data數(shù)據(jù)的鍵值對,可以自定義,但是callbackparam需要和后臺約定好參數(shù)名稱,因為后臺需要獲取到這個參數(shù)里面的值(即success_jsonpCallback)。

下面,最重要的來了,后臺怎么樣獲取和返回數(shù)據(jù)呢。代碼如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
PrintWriter out =null;
String callback=req.getParameter("callbackparam");
String json=callback+"({'status':'ok'})";
try
{
 out = resp.getWriter();
} catch (IOException e)
{
 // TODO Auto-generated catch block
 e.printStackTrace();
}
out.print(json);
out.flush();
out.close();

首先需要獲取參數(shù)名為callbackparam的值,這里獲取到的值就是“success_jsonpCallback”。然后將這個值加上一對小括號。小括號里放入你需要返回的數(shù)據(jù)內(nèi)容,比如這里我返回一個JSON對象。當然你也可以返回其他對象,比如只返回一個字符串類型數(shù)據(jù)也可以。最后前端JS返回的數(shù)據(jù)就是這樣的:

?
1
success_jsonpCallback({'status':'ok'})

瀏覽器會自動解析為json對象,這時候你只需要在success回調(diào)函數(shù)中直接用data.status就可以了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://xieyufei.com/2016/05/28/Java-Ajax.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久9色| 97碰碰碰免费公开在线视频 | 免费国产一区二区 | 亚洲精品a| 国产在线资源 | 经典法国性xxxx精品 | 免费看黄色影片 | 色狠狠一区二区三区香蕉 | 国产成人久久av免费高清密臂 | 一性一交一色生活片 | 欧美a在线看 | 精品乱子伦一区二区三区 | 国产人成精品一区二区三 | 久久噜噜噜精品国产亚洲综合 | 激情欧美日韩一区二区 | 人成免费在线视频 | 青青久久av北条麻妃黑人 | 国产成年人视频 | 久久久久99| 狠狠干最新网址 | 羞羞羞网站 | 天天爽夜夜爽夜夜爽精品视频 | 99久久久国产精品 | 俺来也俺也啪www色 性色视频在线 | 国产成年免费视频 | 久久久久久久久久久久一区二区 | 中文字幕在线一区二区三区 | 色版视频在线观看 | 亚洲三级免费观看 | 欧美一区二区三区精品 | 国产免费一区二区三区 | 亚洲精品久久久久久国产精华液 | 国产精品一区二区久久 | 免费的污网站 | 91精品国产综合久久香蕉最新版 | 日韩亚洲一区二区 | 韩国久久 | 福利视频二区 | 日本少妇一区二区三区 | 日日干夜夜操 | 亚洲欧美一区二区三区国产精品 |