Reactjs axios 获取带有自定义标头的请求

Mau*_*ala 6 javascript ajax reactjs axios

我需要打这个电话

axios.get("http://127.0.0.1/myapi/test.php").then((response) => {
})
Run Code Online (Sandbox Code Playgroud)

如果我这样做,一切正常,HTTP 方法是 GET,但如果我更改为这个

var config = {
    headers: {"X-Id-Token": "abc123abc123"}
};
axios.get("http://127.0.0.1/myapi/test.php", config).then((response) => {
})
Run Code Online (Sandbox Code Playgroud)

HTTP方法是OPTIONS,调用失败,为什么?

编辑

我正在使用节点(localhost:3000)运行reactjs项目,并在IIS上调用php api(http://127.0.0.1/myapi

解决方案

Axios 客户端发出“ping”请求来检查地址是否可达。因此,第一次调用是在 OPTIONS 方法中,后面的调用是在 GET 中。

Shi*_*tya 5

axios({
    url: 'http://127.0.0.1/myapi/test.php',
    method: 'get',
    headers: {
        'X-Id-Token': 'abc123abc123',
        'Content-Type': 'application/json'
    }
 })
 .then(response => {
    console.log(response)
 }) 
 .catch(err => {
    console.log(err);
 });
Run Code Online (Sandbox Code Playgroud)


Mau*_*ala -2

Mayank Shukla的好建议,这是一个 CORS 问题,我由此修改了我的 web.config

<add name="Access-Control-Allow-Origin" value="*" />
Run Code Online (Sandbox Code Playgroud)

对此

<add name="Access-Control-Allow-Origin" value="http://localhost:3000" />
Run Code Online (Sandbox Code Playgroud)