Node 关于请求头的问题

  1. 我想在请求头中插入token传给后台
    我就做了这件事:

clipboard.png

服务端是Node,随后Node没有接受到请求,前台控制台中

clipboard.png

查找原因就是因为请求头中加入了token,要是去掉则能正常发出请求

我查原因,可能是Node服务端对请求头有限定,不能有自定义属性

也找过几个方法设置,但是最后都没有奏效,

clipboard.png

希望大家帮帮我,谢谢!

阅读 2.7k
3 个回答

当我在请求头上自定义加上token 属性后,浏览器会先发送option预请求,node服务端只对get和post请求做了逻辑处理,导致没有捕捉到这次请求,就没有对它进行允许跨域,允许请求头中带有token属性的逻辑
option没有请求成功导致后面的post的请求没有发出,就没有获取数据图片描述

当option请求成功了,后面才能以get或post请求

token可以放到cookie发给后台啊,后台能拿到cookie中的token字段,毕竟前端请求也是这么传过去的

clipboard.png

   var div = document.getElementById('div');
        div.onclick = () => {
            let headres = {
                method: 'post',
                credentials: 'include',
                headers: {
                    'token': '11111'
                },
                body: ''
            }
            fetch('/token', headres).then(x => x.json()).then(x => {
                console.log(x);
            }).catch(err => {
                console.error(err);
            })
        }

我使用你的发送方式

    let xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function () {    //响应完成后的回调函数
                if (xhr.readyState == 4) {            //如果响应完成...此时还不知是否响应成功
                    if (xhr.status == 200) {        //如果响应成功
                        console.log(xhr.responseText);    //使用返回的数据responseText
                    } else {
                        console.log(xhr.responseText);
                    }
                }
            };
            xhr.open("POST", '/token');    //准备请求, 但不发送. 使用get方法, 获取a.html

            xhr.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8');
            xhr.setRequestHeader('token', '3333');

            xhr.send(222);

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题