日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

五、手动取消ajax请求 解决重复发送请求问题

發布時間:2024/7/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 五、手动取消ajax请求 解决重复发送请求问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

server.js:

// 1. 引入express const express = require('express')// 2. 創建應用對象 const app = express()// 3. 創建路由規則 app.get('/server', (request, response) => {// 設置響應頭 設置允許跨域response.setHeader('Access-Control-Allow-Origin', '*')// 設置響應體response.send('hello ajax!!!') })// all 可以接收任意類型的請求 app.all('/server', (request, response) => {// 設置響應頭 設置允許跨域response.setHeader('Access-Control-Allow-Origin', '*')// 允許前端post請求 自定義請求頭名稱response.header('Access-Control-Allow-Headers', '*');// 設置響應體response.send('hello ajax post') })app.all('/json-server', (request, response) => {// 設置響應頭 設置允許跨域response.setHeader('Access-Control-Allow-Origin', '*')// 允許前端post請求 自定義請求頭名稱response.header('Access-Control-Allow-Headers', '*');// 響應一個數據const data = {name: 'zep'};// 對 對象進行字符串轉換let str = JSON.stringify(data)// 設置響應體,send方法只接收字符串類型的參數response.send(str) })// 專門針對IE緩存 app.get('/ie', (request, response) => {// 設置響應頭 設置允許跨域response.setHeader('Access-Control-Allow-Origin', '*')// 設置響應體response.send('hello ie3!!!') })// 延時響應 app.get('/delay', (request, response) => {// 設置響應頭 設置允許跨域response.setHeader('Access-Control-Allow-Origin', '*')// 設置定時器,當客戶端發起請求時,服務端延遲3s再將響應數據發給客戶端setTimeout(() => {// 設置響應體response.send('hello 延遲響應3秒!!!')}, 3000)})// 4. 監聽端口 啟動服務 app.listen(8000, () => {console.log('服務已經啟動,8000端口監聽中...') })

1. 取消請求

2. 解決重復發送請求問題

增加一個標識變量 isSending

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>AJAX 重復請求 請求</title><style type="text/css">#result {width: 200px;height: 100px;border: 1px solid pink;}</style></head><body><button>點擊發送請求</button><button>點擊取消請求</button> <script>// 獲取button元素const btns = document.querySelectorAll('button');let xhr = null;// 標識變量let isSending = false; // 是否正在發送AJAX請求// 綁定事件btns[0].onclick = function() {// 如果正在發送,則取消該請求,創建一個新的if(isSending) {xhr.abort();}// 1.創建對象xhr = new XMLHttpRequest();// 修改標識變量的值isSending = true;// 2.初始化 設置請求方法 和 urlxhr.open('GET', 'http://127.0.0.1:8000/delay');// 3.發送xhr.send();// 4.事件綁定,處理服務端返回的結果xhr.onreadystatechange = function() {if(xhr.readyState === 4) {// 修改標識變量isSending = false;}}}btns[1].onclick = function () {// 取消請求xhr.abort()}</script></body> </html>

總結

以上是生活随笔為你收集整理的五、手动取消ajax请求 解决重复发送请求问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。