jQuery Ajax 设置请求头

在项目中采用token来验证用户登录,运作机制大致如下

用户首次登录成功时,server-end发送token到client,client存入cookie。

用户做任何请求操作时,在ajax的headers里带上token,用以server-end做登录状态验证。

复制代码
 请求
$.ajax({
          type: type,
          timeout: 10000, // 超时时间 10 秒
          headers: {
              'Access-Token':$.cookie('access_token')
          },
          url: url,
          data: data,
          success: function(data) {
          },
          error: function(err) {
          },
          complete: function(XMLHttpRequest, status) { //请求完成后最终执行参数 
          }
      })

报错:

Request header field Access-Token is not allowed by Access-Control-Allow-Headers in preflight response.

1

其中Access-Control-Allow-Headers 首部字段用于预检请求的响应。其指明了实际请求中允许携带的首部字段。参考MDN

查阅了很多参考资料以及各位前辈踩坑记录,得到如下总结:

报错意思是请求头中的Access-Token字段在Access-Control-Allow-Headers中没有被设置为允许.

谁来设置?

一种是font-end自己设置,在ajax在中设置beforeSend

复制代码
$.ajax({
         type: type,
         timeout: 10000, 
         beforeSend: function(xhr) {
              xhr.setRequestHeader("Access-Toke");
         },
         headers: {
             'Access-Token':$.cookie('access_token')
         },
         url: url,
         data: data,
         success: function(data) {
         },
         error: function(err) {
         },
         complete: function(XMLHttpRequest, status) { //请求完成后最终执行参数 
         }
});

希望对大家有所帮助

相关推荐
禅思院7 分钟前
AI对话前端从入门到崩溃:一个长对话引发的五层优化战争【引子】
前端·面试·架构
TrisighT34 分钟前
Electron 鸿蒙 PC 上点外链唤醒应用,我试了 6 种写法只有 1 种能跑
前端·electron·harmonyos
天才熊猫君2 小时前
配置与数据分离:一种可视化搭建的属性编辑方案
前端·javascript
林希_Rachel_傻希希2 小时前
web性能之相关路径——AI总结
前端·javascript·面试
不好听6132 小时前
从零搭建一个 RAG 语义搜索系统 —— DEMO的初始阶段
javascript·面试·llm
何时梦醒2 小时前
上下文工程(Context Engineering):AI 应用开发的新范式 —— 从理论到实战全解析
javascript
竹林8182 小时前
用 wagmi v2 踩坑两天,我终于搞懂了多链钱包切换在 DeFi 前端中的正确姿势
前端·javascript
用户2136610035722 小时前
Vue项目搜索功能与面包屑导航
前端·javascript
星栈2 小时前
LiveView 的实时通信,爽是爽,但 PubSub 和广播也最容易把自己绕晕
前端·前端框架·elixir
用户2930750976692 小时前
告别关键词匹配,拥抱向量语义 —— RAG 搜索从零到一
前端