⑴ WEB前端 怎麼讀取TXT內容
遇到了前端打開文件,讀取文件信息的功能,分享一下:
<input type="file" (change)="openFile($event)" placeholder="Open file..." />
filecontent: any; //放置文件內容
filesToUpload: Array<File> = [];
getContent() {
this.readFile(this.filesToUpload).then((result) => {
this.filecontent = result;
}, (error) => {
console.error(error);
});
}
openFile(fileInput: any) {
this.filesToUpload = <Array<File>>fileInput.target.files;
this.getContent();
}
readFile(files: Array<File>) {
return new Promise((resolve, reject) => {
var fileReader = new FileReader();
fileReader.onload = function (e) {
resolve(fileReader.result);
return;
};
fileReader.readAsText(files[0]);
});
}
⑵ 前端發送數據到後端
前段發送數據到後端有兩種方式post和get方式:
$.ajax({
type:"post",
url:"api.php",
dataType:"json",
success:function(data){
}
});
$.ajax({
type:"get",
url:"api.php",
dataType:"json",
success:function(data){
}
});
這兩種都是頁面js操作的,也可以直接寫下邊這種:
window.location.href="api.php?name=aaa&sex=1";
⑶ html中get和post的區別和使用
1、Get是用來從伺服器上獲得數據,而Post是用來向伺服器上傳遞數據。
2、Get將表單中數據的按照variable=value的形式,添加到action所指向的URL後面,並且兩者使用「?」連接,而各個變數之間使用「&」連接;Post是將表單中的數據放在form的數據體中,按照變數和值相對應的方式,傳遞到action所指向URL。
3、Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者用戶代理都會將請求URL記錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。
4、Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在後面的提到)。
5、Get限制Form表單的數據集的值必須為ASCII字元;而Post支持整個ISO10646字元集。默認是用ISO-8859-1編碼
6、Get是Form的默認方法。
以下的比較非常非常使用:
做java的web開發有段日子了,有個問題老是困擾著我,就是亂碼問題,基本上是網上查找解決方案(網上資料真的很多),都是一大堆的介紹如何解決此類的亂碼問題,但是沒幾個把問題的來龍去脈說清楚的,有時候看了些文章後,以為自己懂了,但是在開發中亂碼問題又像鬼魂一樣出來嚇人,真是頭大了!這篇文章是我長時間和亂碼做斗爭的一些理解的積累,還希望有更多的朋友給出指點和補充。
form有2中方法把數據提交給伺服器,get和post,分別說下吧。
(一)get提交
1.首先說下客戶端(瀏覽器)的form表單用get方法是如何將數據編碼後提交給伺服器端的吧。
對於get方法來說,都是把數據串聯在請求的url後面作為參數,如:http://localhost:8080/servlet?msg=abc
(很常見的一個亂碼問題就要出現了,如果url中出現中文或其它特殊字元的話,如:http://localhost:8080 /servlet?msg=杭州,伺服器端容易得到亂碼),url拼接完成後,瀏覽器會對url進行URL encode,然後發送給伺服器,URL encode的過程就是把部分url做為字元,按照某種編碼方式(如:utf-8,gbk等)編碼成二進制的位元組碼,然後每個位元組用一個包含3個字元的字元串 "%xy" 表示,其中xy為該位元組的兩位十六進製表示形式。我這里說的可能不清楚,具體介紹可以看下java.net.URLEncoder類的介紹在這里。了解了 URL encode的過程,我們能看到2個很重要的問題,第一:需要URL encode的字元一般都是非ASCII的字元(籠統的講),再通俗的講就是除了英文字母以外的文字(如:中文,日文等)都要進行URL encode,所以對於我們來說,都是英文字母的url不會出現伺服器得到亂碼問題,出現亂碼都是url裡面帶了中文或特殊字元造成的;第二:URL encode到底按照那種編碼方式對字元編碼?這里就是瀏覽器的事情了,而且不同的瀏覽器有不同的做法,中文版的瀏覽器一般會默認的使用GBK,通過設置瀏覽器也可以使用UTF-8,可能不同的用戶就有不同的瀏覽器設置,也就造成不同的編碼方式,所以很多網站的做法都是先把url裡面的中文或特殊字元用 javascript做URL encode,然後再拼接url提交數據,也就是替瀏覽器做了URL encode,好處就是網站可以統一get方法提交數據的編碼方式。 完成了URL encode,那麼現在的url就成了ASCII范圍內的字元了,然後以iso-8859-1的編碼方式轉換成二進制隨著請求頭一起發送出去。這里想多說幾句的是,對於get方法來說,沒有請求實體,含有數據的url都在請求頭裡面,之所以用URL encode,我個人覺的原因是:對於請求頭來說最終都是要用iso-8859-1編碼方式編碼成二進制的101010.....的純數據在互聯網上傳送,如果直接將含有中文等特殊字元做iso-8859-1編碼會丟失信息,所以先做URL encode是有必要的。
2。伺服器端(tomcat)是如何將數據獲取到進行解碼的。
第一步是先把數據用iso-8859-1進行解碼,對於get方法來說,tomcat獲取數據的是ASCII范圍內的請求頭字元,其中的請求url裡面帶有參數數據,如果參數中有中文等特殊字元,那麼目前還是URL encode後的%XY狀態,先停下,我們先說下開發人員一般獲取數據的過程。通常大家都是request.getParameter("name")獲取參數數據,我們在request對象或得的數據都是經過解碼過的,而解碼過程中程序里是無法指定,這里要說下,有很多新手說用 request.setCharacterEncoding("字元集")可以指定解碼方式,其實是不可以的,看servlet的官方API說明有對此方法的解釋:Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader().可以看出對於get方法他是無能為力的。那麼到底用什麼編碼方式解碼數據的呢,這是tomcat的事情了,默認預設用的是 iso-8859-1,這樣我們就能找到為什麼get請求帶中文參數為什麼在伺服器端得到亂碼了,原因是在客戶端一般都是用UTF-8或GBK對數據 URL encode,這里用iso-8859-1方式URL decoder顯然不行,在程序里我們可以直接
Java代碼
1. new String(request.getParameter("name").getBytes("iso-8859-1"),"客戶端指定的URL encode編碼方式")
還原回位元組碼,然後用正確的方式解碼數據,網上的文章通常是在tomcat裡面做個配置
Xml代碼
1. <Connector port="8080" protocol="HTTP/1.1" maxThreads="150" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK"/>
這樣是讓tomcat在獲取數據後用指定的方式URL decoder,URL decoder的介紹在這里
(一)post提交
1.客戶端(瀏覽器)的form表單用post方法是如何將數據編碼後提交給伺服器端的。
在post方法里所要傳送的數據也要URL encode,那麼他是用什麼編碼方式的呢?
在form所在的html文件里如果有段<meta http-equiv="Content-Type" content="text/html; charset=字元集(GBK,utf-8等)"/>,那麼post就會用此處指定的編碼方式編碼。一般大家都認為這段代碼是為了讓瀏覽器知道用什麼字元集來對網頁解釋,所以網站都會把它放在html代碼的最前端,盡量不出現亂碼,其實它還有個作用就是指定form表單的post方法提交數據的 URL encode編碼方式。從這里可以看出對於get方法來數,瀏覽器對數據的URL encode的編碼方式是有瀏覽器設置來決定,(可以用js做統一指定),而post方法,開發人員可以指定。
2。伺服器端(tomcat)是如何將數據獲取到進行解碼的。
如果用tomcat默認預設設置,也沒做過濾器等編碼設置,那麼他也是用iso-8859-1解碼的,但是request.setCharacterEncoding("字元集")可以派上用場。
⑷ 用java怎麼實現從前端接收、處理並傳回視頻
很簡單啊,你遞歸出一個文件夾裡面的視頻類型的文件啊,(如果是web,那就是加url後面就是在項目里的文件夾啊,)然後把他們的路徑保存為json格式的數據
⑸ python flask怎樣獲取前端get的數據
客戶的數據查看主要看flask.request這個變數,數據大概存在request.data中, 可以這樣實現。
fromflaskimportFlask,request,current_app
app=Flask(__name__)
@app.route('/getUserList',methods=['GET','POST'])
defgetUserList():
current_app.getUserList_data=request.data
return'ok'
@app.route('/getUserList_debug',methods=['GET','POST'])
defgetUserList_debug():
returncurrent_app.getUserList_data
if__name__=='__main__':
app.run(debug=True)
⑹ 如何將已get到的數據在以字元串的方式在頁面內容中顯示,求大神指點
你還真是倔強呢。
首先,跨域問題雖然前端經常遇到,但是解決方案並不在前端,雖然你使用了jsonp,但是還需要後端來配合將返回值轉成函數的形式才有意義。跨域報錯的核心是瀏覽器阻止,不是js能控制的,瀏覽器在數據返回時候就進行了攔截,JavaScript根本就獲取不到數據。你圖中的代碼截圖是JavaScript,這個不存在跨域問題。
如果你一點要獲取三方網頁,最簡單的是本地寫一個php或者nodejs的頁面,也就是所謂了後端頁面做跳板,因為後端頁面獲取三方頁面沒有跨域的限制。這個後端頁面同你的頁面上同域,可以直接把數據返回給你用於顯示,而且可以根據你自己的喜好修改。
⑺ 前端面試get和post區別是什麼ajax跨域如何解決
GET和POST的核心區別就是:
GET通過URL傳輸數據,位於HTTP請求頭中
POST通過HTTP請求體傳遞數據
Ajax跨域幾種方法:
CORS跨域
postMessage跨域
document.domain同主域,不同子域之間跨域
iframe的hash跨域
window.name跨域
JSONP跨域
後端代理跨域
其中1、2、3、6是最常用的,一定要說
⑻ 通過GET或者POST參數獲取從前端瀏覽器傳遞的表示頁碼的參數page,並判斷page的值是
這個是簡單的input
1、html前端(使用POST傳值)代碼
<!Doctypehtml>
<htmllang="zh-CN">
<head>
<metacharset="utf-8">
<title>FormPage</title>
</head>
<body>
<formmethod="post"action="1.php">
<label>轉到第</lable><inputtype="text"name="page">頁<br>
<inputtype="submit"value="提交"name="submit">
</form>
</body>
</html>
2、1.php代碼
<?php
$page=is_int($_POST['page'];
if(!$page){
echo"頁碼格式錯誤";
}else{
echo"你看到的是".$page."頁";
}
functionis_int($page){
$reg='/[0-9]/';
if(preg_match($reg,$page){
return$page;
}else{
returnfalse;
}
}
?>
⑼ 前端腳本發起get請求,後端將數據放到 js 回調里,前端接受響應後執行回調拿到數據,就是jsonp的原理嗎
jsonp的原理
<script src="http://xxxx/xxx?callback=fnName ">
script中的src具有天然的跨域特性,以src發送的請求的返回值默認會以js語法解析,只要將需要執行的函數名以url里get請求 ?callback=fnName 接在路徑後
然後後端將數據放在回調中返回,前端響應執行回調
最主要要講到 script 中 src 帶有的天然跨域性