午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

AJAX亂碼與異步同步以及封裝jQuery庫實現步驟詳解

瀏覽:391日期:2022-06-11 18:59:03
目錄
  • 1、AJAX亂碼問題
  • 2、AJAX的異步與同步
  • 3、AJAX代碼封裝
  • 4、手動封裝一個jQuery庫

1、AJAX亂碼問題

(1)發送ajax get 或者 ajax post請求時下面兩種情況?

①發送數據到服務器,服務器獲取的數據是否亂碼?

②服務器響應給前端的中文,會不會亂碼?

(2)以Tomcat9為例:

①前端代碼:填數據,發送到服務器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測試AJAX亂碼問題</title>
</head>
<body>
<script type="text/javascript">
    window.onload = function(){
// -----------------------------------------------ajax get
document.getElementById("btn1").onclick = function(){
    // 創建對象
    var xhr = new XMLHttpRequest();
    // 注冊回調函數
    xhr.onreadystatechange = function (){
if (this.readyState == 4) {
    if (this.status == 200) {
document.getElementById("mydiv").innerHTML = this.responseText
    }
}
    }
    // 打開通道
    var username = document.getElementById("username").value
    xhr.open("GET", "/ajax/ajaxrequest7?username="+username+"&t=" + new Date().getTime(), true)
    // 發送請求
    xhr.send()
}
// -----------------------------------------------ajax post
document.getElementById("btn2").onclick = function(){
    // 創建對象
    var xhr = new XMLHttpRequest();
    // 注冊回調函數
    xhr.onreadystatechange = function (){
if (this.readyState == 4) {
    if (this.status == 200) {
document.getElementById("mydiv").innerHTML = this.responseText
    }
}
    }
    // 打開通道
    xhr.open("POST", "/ajax/ajaxrequest7", true)
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
    var username = document.getElementById("username").value
    // 發送請求
    xhr.send("username=" + username)
}
    }
</script>
<input type="text" id="username"><br>
<button id="btn1">發送ajax get請求,測試亂碼問題</button><br>
<button id="btn2">發送ajax post請求,測試亂碼問題</button><br>
<div id="mydiv"></div>
</body>
</html>

②后端代碼:先獲取數據,然后在把數據響應給服務器

package com.bjpowernode.javaweb.ajax;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * @program: 代碼
 * @ClassName: AjaxRequest7Servlet
 * @version: 1.0
 * @description: 測試ajax亂碼問題
 **/
@WebServlet("/ajaxrequest7")
public class AjaxRequest7Servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
// 接收的中文會不會亂碼----不會
String username = request.getParameter("username");
System.out.println(username);
// 響應中文會有亂碼嗎?----會
 response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(username);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
// 接收的中文會不會亂碼----會
request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
System.out.println(username);
// 響應中文會有亂碼嗎?---會
 response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(username);
    }
}

(3)測試結果:

對于tomcat10來說,關于字符集,我們程序員不需要干涉,不會出現亂碼。

對于tomcat9和之前的版本來說:

①對于GET請求:接收前端的數據輸出到控制臺不會亂碼;把接收到的數據重新發給瀏覽器,輸出打印到瀏覽器會亂碼!

②對于POST請求:接收前端的數據輸出到控制臺和把接收到的數據重新發給瀏覽器進行輸出兩者都會亂碼!

標簽: Ajax
主站蜘蛛池模板: 成人亚洲天堂 | 黄色小视频在线免费看 | 天堂中文资源在线观看 | 日韩欧美精品一区 | 日韩av中字 | 本站只有精品 | 国产精品视频久久久久久久 | 黄色片网站在线播放 | 特级一级黄色片 | 亚洲成熟少妇视频在线观看 | 国产精品麻豆传媒 | 午夜视频在线观看一区 | 日本va欧美va欧美va精品 | 亚洲午夜18毛片在线看 | 太久av| 亚洲男人天堂2018 | 综合网在线观看 | 国产黄色网页 | 国色天香av| 五月婷婷激情综合网 | 色婷婷影院| 国产精品揄拍100视频 | 久色免费视频 | 伊人久久大香线蕉成人综合网 | 香蕉一区二区 | 亚洲视频免费 | 国产午夜一级 | 国产 欧美 精品 | 99re9| 日韩美女视频 | 国产不卡在线观看视频 | 欧美中文字幕在线视频 | 欧美黄色三级 | 成人三级小说 | 久久不射影院 | 国产婷婷色一区二区三区在线 | 亚洲黄色免费看 | 国产在线一 | 91久久精品国产 | 黄色无毒网站 | 久久中国|