首页 > 其他分享 >七、设置请求头信息 jquery发送ajax请求和后端一起使用

七、设置请求头信息 jquery发送ajax请求和后端一起使用

时间:2023-11-06 19:57:17浏览次数:40  
标签:jquery 请求 响应 server xhr ajax 设置 response

七、设置请求头信息 jquery发送ajax请求和后端一起使用

1、预定义请求头设置:

在xhr.open()方法之后添加语句,进行请求头设置

  1. //设置请求头
  2. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

请求报文分为:行、头、空行、体

其中Content-Type用以设置请求体内容类型;

后面的长串字符串是用来设置请求体内容类型的固定写法

在开发者工具中查看:

2、自定义请求头设置:

设置自定义的请求头

xhr.setRequestHeader('name','value');

F5运行,并打开开发者工具窗口;此时会报红,并且原有div没有展示服务端的响应体内容;这是因为自定义的请求头会触发浏览器的安全机制

 若是需要正常发送和接受,需要在服务端定义特殊的响应头

 设置响应头,能够接受所有类型的头信息

response.setHeader("Access-Control-Allow-Headers","*");

由于在真正的运行阶段,前端页面发送请求头信息之后,还需要验证自定义的请求头是否可用,会用到Options请求方法,因此需要将请求方法设置为all

  1. app.all('/server',(request,response) =>{
  2. //设置响应头 设置允许跨域
  3. response.setHeader("Access-Control-Allow-Origin","*");
  4. //设置响应头 * 表示允许接受所有类型的头信息
  5. response.setHeader("Access-Control-Allow-Headers","*");
  6. //设置响应体
  7. response.send("Hello Ajax-Post请求");
  8. })

关闭server.js的运行,并重新启动,打开前端页面文件并F5运行,鼠标悬浮div上,打开开发者工具,如下,即完成自定义请求头的创建

所有代码:

前端代码

  1. <!--Post请求 前端浏览器页面-->
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Ajax Post 请求</title>
  8. <style>
  9. #result{
  10. width: 200px;
  11. height: 100px;
  12. border: solid 1px #903;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <!--鼠标悬浮于div上,向服务端发送请求,并将响应体显示到div中-->
  18. <div id = "result"></div>
  19. <script>
  20. //获取元素对象
  21. const result = document.getElementById('result');
  22. //绑定鼠标悬浮事件
  23. result.addEventListener('mouseover',function(){
  24. //1、创建对象
  25. const xhr = new XMLHttpRequest();
  26. //2、初始化 设置请求类型和url
  27. xhr.open("Post","http://127.0.0.1:8000/server");
  28. //设置请求头
  29. //Content-Type用来设置请求体内容类型
  30. //后面长串用来设置请求体内容类型的固定写法
  31. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  32. //自定义请求头设置
  33. xhr.setRequestHeader('name','study');
  34. //3.发送 设置请求体
  35. xhr.send("a=100&b=200&c=300");
  36. //4.事件绑定
  37. xhr.onreadystatechange = function(){
  38. if(xhr.readyState == 4){
  39. if(xhr.status >= 200 && xhr.status < 300){
  40. result.innerHTML=xhr.response;
  41. }
  42. }
  43. }
  44. });
  45. </script>
  46. </body>
  47. </html>

服务端代码

  1. //1.引入express
  2. const express = require('express')
  3. //2.创建引用对象
  4. const app = express();
  5. //3.创建路由规则
  6. //request 是对请求报文封装
  7. //response 是对响应报文的封装
  8. //此处的'/server'代表若是连接server,则会进行对应的设置
  9. app.get('/server',(request,response) =>
  10. {
  11. //设置响应头 设置允许跨域
  12. response.setHeader('Access-Control-Allow-Origin','*');
  13. //设置响应体
  14. response.send("Hello Ajax");
  15. });
  16. app.all('/server',(request,response) =>{
  17. //设置响应头 设置允许跨域
  18. response.setHeader("Access-Control-Allow-Origin","*");
  19. //设置响应头 * 表示允许接受所有类型的头信息
  20. response.setHeader("Access-Control-Allow-Headers","*");
  21. //设置响应体
  22. response.send("Hello Ajax-Post请求");
  23. })
  24. //4.监听端口启动服务
  25. app.listen(8000,()=>{
  26. console.log("服务器已经启动,8000端口监听中......");
  27. });

个人学习记录,欢迎指点讨论

原文链接:https://blog.csdn.net/qq_43733614/article/details/131623157

标签:jquery,请求,响应,server,xhr,ajax,设置,response
From: https://www.cnblogs.com/sunny3158/p/17813563.html

相关文章

  • 如何在Vue.js中添加headers(标头) 使用 axios,单独请求,所有请求 添加请求头
    如何在Vue.js中添加headers(标头)使用axios,单独请求,所有请求添加请求头Vue.js是一个流行的前端框架,它以其简单易用的API和高度可组合的架构而闻名。当你构建一个Web应用时,你通常会使用一个HTTP客户端来与API交互。该客户端可以是一个浏览器内部的XMLHttpRequest,也可以......
  • vue修改http请求头_vue-resouce设置请求头的三种方法
    vue修改http请求头_vue-resouce设置请求头的三种方法本文主要介绍了vue-resouce设置请求头的三种方法,分享给大家,具体如下:第一种:在Vue实例中设置varvm=newVue({el:'#rrapp',data:{showList:true,title:null},http:{root:'/',headers:{token:tok......
  • DataTables ajax
    DescriptionDataTablescanobtainthedatathatitistodisplayinthetablebodyfromanumberofsources,includingfromanAjaxdatasource,usingthisinitialisationparameter.Aswithotherdynamicdatasources,arraysorobjectscanbeusedforthe......
  • uniApp:使用vue3+Vite4+pinia+sass技术栈构建(02)-封装api请求
    前言在纯vue3开发的时候,使用axios进行api请求,但在uniapp中还需要安装axios的适配器uniapp-axios-adapter,否则小程序或者app请求不兼容。文档地址uniapp-axios-adapter-DCloud插件市场但在这里我们不使用axios,而是使用uniapp提供的请求方法uni.request进行封装。uni.request方......
  • jQuery plugins
    http://jquery.com/http://jqueryui.com/http://www.jqueryrain.com/http://plugins.jquery.com/http://www.jqueryscript.net/http://jqueryhouse.com/ ......
  • DataTables Table plug-in for jQuery
    DataTablesTableplug-inforjQueryDataTablesisaplug-inforthejQueryJavascriptlibrary.Itisahighlyflexibletool,baseduponthefoundationsofprogressiveenhancement,andwilladdadvancedinteractioncontrolstoanyHTMLtable.Pagination,ins......
  • 06前端开发jQuery
    DOM操作标签'''在起变量名的时候如果该变量指向的是一个标签那么建议使用xxxEleeg:aEle\pEle\divEle\spanEle'''#动态创建一个a标签并添加到页面指定位置varaEle=document.createElement('a')#创建a标签aEle.href='https://www.sogo.com/'#......
  • (八)Robot Framework之Get请求
    Get请求1.${变量} getrequest 会话名 /路径?参数名=值2.${字典名} createdictionary 参数1=值1 参数2=值2${响应结果} getrequest 会话名 /路径 params=${字典名}3.params关键字不能省略如接口:/weathermini?city=省或直辖市名......
  • '/webhook'​​​是你的服务器上的一个路径,当有人发送POST请求到这个路径时,​​webhoo
    在这段代码中,'/webhook'是你的服务器上的一个路径,当有人发送POST请求到这个路径时,webhook()函数就会被调用。你可以根据你的需求来选择这个路径,只要它在你的服务器上是唯一的。例如,如果你的服务器的URL是http://myserver.com,那么当飞书机器人发送POST请求到http://myserver.com/web......
  • 如何使用 Loadgen 来简化 HTTP API 请求的集成测试
    引言在编写HTTP服务的过程中,集成测试[1]是保证程序正确性的重要一环,如下图所示,其基本的流程就是不断向服务发起请求然后校验响应的状态和数据等:为大量的API和用例编写测试是一件繁琐的工作,而Loadgen[2]正是为了简化这一过程而设计的。一个简单的测试假定我们在127.......