Ajax—— get請求中文處理

get請求的URL後面的參數不能傳中文,工作中對get請求後的中文進行URL編碼
js提供的URL編碼和解碼
encodeURl()Component編碼與decodeURlComponent解碼
encodURl()與encodeURlComponent()的區別:encodeURl函數不會對特殊字符進行處理:!、@、#、 $、&、*、 {}、=、:、/、;、?、+
推薦使用encodeURlComponent()

案例:修改之前get請求的URL編碼

創建jsp登錄頁面LoginServlet

<script type="text/javascript">
//js登錄方法
function login(){
//使用ajax往servlet發送get請求
//1.獲取表單數據
var username=document.getElementById('username').value;
var password=document.getElementById('password').value;
//2.拼接表單數據
var params='username'+username+'&password'+password;

//對參數進行URL編碼
params=encodeURIComponent(params);

//3.URL
var url='${pageContext.request.contextPath}/LoginServlet?'+params;
//4.使用ajax發送get請求
//4.1創建一個請求對象
var request=new XMLHttpRequest();
//4.2調用get請求方法,調用open方法的時候,都用異步請求true
request.open('get',url,true);
request.send();
//4.3接收服務器的響應
request.onreadystatechange=function(){
console.log('準備狀態碼:'+request.readyState+'---響應狀態碼:'+request.status);
if(request.readState==4&&request.status==200){
//接收服務器響應的數據
var rspText=request.responseTest;
console.log(rspText);
var jsonObj=JSON.parse(rspText);
//獲取span標籤
var tipTag=document.getElementById('tip');
if(jsonObj.success==1){
tipTag.innerHTML='登錄成功';
}else{
tipTag.innerHTML=jsonObj.errMsg;
}
}
}
}
</script>

 <span style="color:red" id='tip';></span>
<form>
用戶名:<input type="text" name="username" id='''username'><br>
密碼:<input type="password" type="password" name="password" id="password"><br>
<input type="button" value="登錄" onclick="login()">
</form>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章