一、设置请求体
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>TestAjax</title><style>#result{width: 200px;height: 100px;border: solid 1px #2a5caa;}</style></head><body><div id="result"></div><script>const result = document.getElementById('result');result.addEventListener("mouseover",function (){const xhr = new XMLHttpRequest();xhr.open('POST','http://localhost:8000/server');xhr.send();xhr.onreadystatechange = function (){if (xhr.readyState === 4){if (xhr.status >= 200 && xhr.status < 300){result.innerHTML = xhr.response;}}}});</script></body></html>
// 1.引入expressconst express = require('express')// 2.创建应用对象const app = express()// 3.创建路由规则// 获取get请求app.get('/server', (request,response) =>{// 设置响应头response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域// 设置响应体response.send('获取get请求')});// 获取post请求app.post('/server', (request,response) =>{// 设置响应头response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域// 设置响应体response.send('获取post请求')});// 4.监听端口,启动服务app.listen(8000,()=>{console.log("服务已启动");});
说明:发送get请求需要app.get,发送需要app.post。
POST传递参数
xhr.send(‘a=100&b=200’);
xhr.send(‘a:100&b:200’);
二、设置请求头信息
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>TestAjax</title><style>#result{width: 200px;height: 100px;border: solid 1px #2a5caa;}</style></head><body><div id="result"></div><script>const result = document.getElementById('result');result.addEventListener("mouseover",function (){const xhr = new XMLHttpRequest();xhr.open('POST','http://localhost:8000/server');// 设置请求头 名字 值xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.setRequestHeader('name','mx');xhr.send();xhr.onreadystatechange = function (){if (xhr.readyState === 4){if (xhr.status >= 200 && xhr.status < 300){result.innerHTML = xhr.response;}}}});</script></body></html>
请求头信息可以自定义,但是需要设置Access-Control-Allow-Headers
// 1.引入expressconst express = require('express')// 2.创建应用对象const app = express()// 3.创建路由规则app.get('/server', (request,response) =>{// 设置响应头response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域// 设置响应体response.send('获取get请求')});app.post('/server', (request,response) =>{// 设置响应头response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域//response.setHeader('Access-Control-Allow-Headers','*') // 设置所有请求头都可以允许书写// 设置响应体response.send('获取post请求')});// 4.监听端口,启动服务app.listen(8000,()=>{console.log("服务已启动");});
若此时还有报错,说明请求没有完全发送,可以用app.all尝试
// 1.引入expressconst express = require('express')// 2.创建应用对象const app = express()// 3.创建路由规则app.get('/server', (request,response) =>{// 设置响应头response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域// 设置响应体response.send('获取get请求')});app.post('/server', (request,response) =>{// 设置响应头response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域//response.setHeader('Access-Control-Allow-Headers','*') // 设置所有请求头都可以允许书写// 设置响应体response.send('获取post请求')});app.all('/server', (request,response) =>{// 设置响应头response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域//response.setHeader('Access-Control-Allow-Headers','*') // 设置所有请求头都可以允许书写// 设置响应体response.send('获取所有请求')});// 4.监听端口,启动服务app.listen(8000,()=>{console.log("服务已启动");});
