当前位置: 首页 > 知识库问答 >
问题:

无法在Fetch Get请求中设置任何标头

魏翔
2023-03-14

Im正在尝试从浏览器发送get请求到我的后端(node+express)。但不知何故我的头部似乎没有设置好。

前面是这样的:

let accessToken = localStorage.getItem('accessToken');

    fetch('http://localhost:3000/checkLogin', {
        method: 'GET',
        mode: same-origin,

        withCredentials: true,
        credentials: 'include',
        headers: {
            'Authorization': 'Bearer ' + accessToken,
            'Content-Type': 'text/plain',
            'X-Test':'test'
        }
    })
    .then(data => {
        console.log('Success:', data);
    })
    .catch((error) => {
        console.error('Error:', error);
    });

在后端,我尝试启用自定义头:

server.use(function(req, res, next) {
console.log("CORS");
res.set('Access-Control-Allow-Origin', 'localhost:3000/testLogin');
res.set('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.set('Access-Control-Allow-Headers', 'Authorization, Content-Type, X-Test');
next();});

我已经试过类似问题的答案,但没有一个奏效。

当我打印服务器收到的报头时,我得到:

host: 'localhost:3000',
  connection: 'keep-alive',
  'cache-control': 'max-age=0',
  'sec-ch-ua': '"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',
  'sec-ch-ua-mobile': '?0',
  'upgrade-insecure-requests': '1',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36',
  accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
  'sec-fetch-site': 'same-origin',
  'sec-fetch-mode': 'navigate',
  'sec-fetch-user': '?1',
  'sec-fetch-dest': 'document',
  referer: 'http://localhost:3000/',
  'accept-encoding': 'gzip, deflate, br',
  'accept-language': 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7'

共有1个答案

霍锦
2023-03-14

您指定的原点无效。它需要有一个方案(例如http://https:/)。还要注意,起源没有路径。因此,例如,'localhost:3000/testlogin',而不是'http://localhost:3000':

res.set('Access-Control-Allow-Origin', 'http://localhost:3000');
 类似资料:
  • 问题内容: 在使用XMLHttpRequest进行AJAX调用时,似乎无法从JavaScript更改大多数请求标头。请注意,必须在Gecko浏览器中调用when。设置_Referer时_ ,它没有设置(我查看了使用Firebug和Tamper Data发送的请求标头)。当我设置User-Agent时,它完全搞砸了AJAX调用。但是,设置接受和_内容类型_确实可以。我们是否无法在Firefox 3中

  • 问题内容: 我在Go中做一个简单的http GET: 但是我找不到在doc中自定义请求标头的方法,谢谢 问题答案: 请求的字段是公共的。您可以这样做:

  • 我使用调用登录请求。在登录测试中,我从令牌登录响应中设置了环境变量。这不起作用。登录测试成功,但环境变量令牌不存在。 集合中的预请求脚本: 登录请求中的测试脚本:

  • 问题内容: 我应该如何阅读PHP中的任何标头? 例如自定义标头:。 问题答案: 如果 :您只需要一个标头,而不是 所有 标头,最快的方法是: ELSE IF :您将PHP作为Apache模块运行,或者从PHP 5.4开始,使用FastCGI(简单方法)运行: apache_request_headers() ELSE: 在任何其他情况下,您都可以使用(用户区实现):

  • 我的后端是sprin引导应用程序,前端是vue js 但是cookie值没有设置在请求头部和所有其他api失败与身份验证问题,因为cookie值(会话ID)不存在于头部 样本响应头部与set-cookie身份验证 下面是我在vue.config.js中的代理配置 这是我的axios实例创建与"with凭据:真" 下面是我在服务器端的web安全配置 注意:这在邮递员中工作,因为邮递员会自动将cook

  • 如何为截击请求设置自定义标题?目前,有一种方法可以为POST请求设置正文内容。我有一个简单的GET请求,但我需要同时传递自定义头。我不知道JsonRequest类如何支持它。有可能吗?