我无法从ReactJS执行请求。标头无法正确写入

时间:2019-11-05 23:11:16

标签: reactjs spring security spring-security axios

axios.get('http://localhost:8080/omp/patients', { headers: {authorization: 'Bearer ' + token}})
        .then( response => {
                this.state = response.data;
            }
        ).catch(ex=> {
            alert("You are not registered");
            //console.log(e)
        });

enter image description here

在网络中,我有一个字段:“访问控制请求头:授权”,但没有字段“授权:令牌”

3 个答案:

答案 0 :(得分:1)

您将需要正确设置Authorization标头,如上面的注释所示。

对于您对CORS政策的答复:

您将需要了解CORS,但是,如果Chrome和其他浏览器在响应时未设置适当的CORS标头,则它们实际上会暂停网络请求。预检是发送到同一URL的初始请求,以在发送实际请求之前了解该URL是否支持CORS。服务器似乎不了解CORS的预检操作或配置不正确。

您有两种选择:

  1. 如果您有权访问服务器配置或代码(例如Laravel或NodeJS服务器),请安装CORS插件。
  2. 如果您是唯一使用此功能的用户,则可以安装适用于Chrome或Firefox或其他操作系统的CORS浏览器扩展程序。

答案 1 :(得分:0)

将代码更改为此:

axios.get('http://localhost:8080/omp/patients', { headers: { "Authorization": 'Bearer ' + token}})
        .then( response => {
                this.state = response.data;
            }
        ).catch(ex=> {
            alert("You are not registered");
            //console.log(e)
        });

还在您运行服务器导入/请求cors模块的app.js / index.js中执行以下操作:

let cors = require('cors');
app.use(cors());

希望这会有所帮助!

答案 2 :(得分:0)

检查是否正确配置了CORS策略文件。