前端学习(1430):ajax封装五
生活随笔
收集整理的這篇文章主要介紹了
前端学习(1430):ajax封装五
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ajax.js
// 引用expess框架 const express = require('express'); // 處理路徑 const path = require('path');const bodyParser = require('body-parser'); const fs = require('fs');// 創建網站服務器 const app = express(); app.use(bodyParser.json()); app.get('/first', (req, res) => {res.send('hello geyao') }) app.get('/responsdate', (req, res) => {res.status(400).send({ "name": "geyao" }) }) app.post('/post', (req, res) => {res.send(req.body); }) app.get('/get', (req, res) => {res.send(req.query); }) app.post('/json', (req, res) => {res.send(req.body); }) app.get('/readystate', (req, res) => {res.send('hello'); }) app.get('/error', (req, res) => {res.status(400).send('not ok'); }) app.get('/geyao', (req, res) => {res.send('hello geyao') }) app.get('/cache', (req, res) => {fs.readFile('./text.txt', (err, result) => {res.send(result);}); }) app.use(express.static(path.join(__dirname))); // 監聽端口 app.listen(3000); console.log('網站服務器啟動成功, 請訪問localhost')ajax10.html
<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head><body><script>function ajax(options) {//創建ajax對象var xhr = new XMLHttpRequest();var params = '';//循環用戶的參數for (var attr in options.data) {params += attr + '=' + options.data[attr] + '&'}params = params.substr(0, params.length - 1);if (options.type == 'get') {options.url = options.url + '?' + params;}console.log(params);//配置ajax對象xhr.open(options.type, options.url);//發送請求if (options.type == 'post') {var contentType = options.header['Content-Type'];xhr.setRequestHeader('Content-type', options.header['Content-Type']);if (contentType == 'application/json') {xhr.send(JSON.stringify(options.data))} else {xhr.send(params);}} else {xhr.send();}//觸發xhr.onload = function() {//獲取響應頭的數據var contentType = xhr.getResponseHeader('Content-Type');//服務器端返回數據var responseText = xhr.responseText;if (contentType.includes('application/json')) {responseText = JSON.parse(responseText);}//狀態碼分開if (xhr.status == 200) {console.log(responseText, xhr);options.success('hah');} else {options.error(responseText, xhr);}}}ajax({type: 'get',data: {name: 'geayo',age: 20},url: 'http://localhost:3000/responsdate',success: function(data) {console.log('這里是成功函數' + data);},error: function(data, xhr) {console.log('這里是失敗函數' + data);console.log(xhr);},header: {'Content-Type': 'application/json'}})</script> </body></html>ajax1.html
<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title> </head><body><script>//1創建ajax對象var xhr = new XMLHttpRequest();//請求方式xhr.open('get', 'http://localhost:3000/responsdate');//發送請求xhr.send();//獲取數據xhr.onload = function() {/* console.log(xhr.responseText); */var res = JSON.parse(xhr.responseText);console.log(res);var str = '<h2></h2>'document.body.innerHTML = str;}</script> </body></html>運行結果
總結
以上是生活随笔為你收集整理的前端学习(1430):ajax封装五的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(1286):node运行环境安
- 下一篇: 20多岁的一无所有,其实是理所应当的