一、设置请求体

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>TestAjax</title>
  6. <style>
  7. #result{
  8. width: 200px;
  9. height: 100px;
  10. border: solid 1px #2a5caa;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <div id="result"></div>
  16. <script>
  17. const result = document.getElementById('result');
  18. result.addEventListener("mouseover",function (){
  19. const xhr = new XMLHttpRequest();
  20. xhr.open('POST','http://localhost:8000/server');
  21. xhr.send();
  22. xhr.onreadystatechange = function (){
  23. if (xhr.readyState === 4){
  24. if (xhr.status >= 200 && xhr.status < 300){
  25. result.innerHTML = xhr.response;
  26. }
  27. }
  28. }
  29. });
  30. </script>
  31. </body>
  32. </html>
  1. // 1.引入express
  2. const express = require('express')
  3. // 2.创建应用对象
  4. const app = express()
  5. // 3.创建路由规则
  6. // 获取get请求
  7. app.get('/server', (request,response) =>{
  8. // 设置响应头
  9. response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域
  10. // 设置响应体
  11. response.send('获取get请求')
  12. });
  13. // 获取post请求
  14. app.post('/server', (request,response) =>{
  15. // 设置响应头
  16. response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域
  17. // 设置响应体
  18. response.send('获取post请求')
  19. });
  20. // 4.监听端口,启动服务
  21. app.listen(8000,()=>{
  22. console.log("服务已启动");
  23. });

说明:发送get请求需要app.get,发送需要app.post。
POST传递参数
xhr.send(‘a=100&b=200’);
xhr.send(‘a:100&b:200’);

二、设置请求头信息

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>TestAjax</title>
  6. <style>
  7. #result{
  8. width: 200px;
  9. height: 100px;
  10. border: solid 1px #2a5caa;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <div id="result"></div>
  16. <script>
  17. const result = document.getElementById('result');
  18. result.addEventListener("mouseover",function (){
  19. const xhr = new XMLHttpRequest();
  20. xhr.open('POST','http://localhost:8000/server');
  21. // 设置请求头 名字 值
  22. xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  23. xhr.setRequestHeader('name','mx');
  24. xhr.send();
  25. xhr.onreadystatechange = function (){
  26. if (xhr.readyState === 4){
  27. if (xhr.status >= 200 && xhr.status < 300){
  28. result.innerHTML = xhr.response;
  29. }
  30. }
  31. }
  32. });
  33. </script>
  34. </body>
  35. </html>

请求头信息可以自定义,但是需要设置Access-Control-Allow-Headers

  1. // 1.引入express
  2. const express = require('express')
  3. // 2.创建应用对象
  4. const app = express()
  5. // 3.创建路由规则
  6. app.get('/server', (request,response) =>{
  7. // 设置响应头
  8. response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域
  9. // 设置响应体
  10. response.send('获取get请求')
  11. });
  12. app.post('/server', (request,response) =>{
  13. // 设置响应头
  14. response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域
  15. //
  16. response.setHeader('Access-Control-Allow-Headers','*') // 设置所有请求头都可以允许书写
  17. // 设置响应体
  18. response.send('获取post请求')
  19. });
  20. // 4.监听端口,启动服务
  21. app.listen(8000,()=>{
  22. console.log("服务已启动");
  23. });

若此时还有报错,说明请求没有完全发送,可以用app.all尝试

  1. // 1.引入express
  2. const express = require('express')
  3. // 2.创建应用对象
  4. const app = express()
  5. // 3.创建路由规则
  6. app.get('/server', (request,response) =>{
  7. // 设置响应头
  8. response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域
  9. // 设置响应体
  10. response.send('获取get请求')
  11. });
  12. app.post('/server', (request,response) =>{
  13. // 设置响应头
  14. response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域
  15. //
  16. response.setHeader('Access-Control-Allow-Headers','*') // 设置所有请求头都可以允许书写
  17. // 设置响应体
  18. response.send('获取post请求')
  19. });
  20. app.all('/server', (request,response) =>{
  21. // 设置响应头
  22. response.setHeader('Access-Control-Allow-Origin','*') // 设置允许跨域
  23. //
  24. response.setHeader('Access-Control-Allow-Headers','*') // 设置所有请求头都可以允许书写
  25. // 设置响应体
  26. response.send('获取所有请求')
  27. });
  28. // 4.监听端口,启动服务
  29. app.listen(8000,()=>{
  30. console.log("服务已启动");
  31. });