如何在axios中的主要请求之前添加OPTIONS请求

时间:2019-06-16 10:59:52

标签: javascript cors axios

我想在解决CORS问题的主要请求之前发送OPTIONS请求。 如何从客户端解决这个问题?

我使用浏览器扩展程序来解决问题。而且有效。但我不想使用扩展名

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi/related

这是我的代码:

import axios from 'axios'

const service = axios.create({
    baseURL: "http://sub.domain.com/api/",
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        'Authorization': 'auth'
    }
})


export default class API {
    static getData () {
        return service.get('get-data')
    }
}

=====

API.getData()

1 个答案:

答案 0 :(得分:-1)

在需要时,浏览器会自动发出预检请求。在通常情况下,前端开发人员不需要自己制作此类请求。

https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request

因此,如果您正在调用来自浏览器的请求,并且您正在调用的API服务器不允许您的本地主机域,则无需您自己进行操作,您需要将浏览器中的域更改为被允许的域 作为示例,如果服务器通过仅允许从www.xyz.com访问的标头响应选项 您可以在计算机中编辑etc / hosts文件,使其指向localhost

127.0.0.1       localhost www.xyz.com 

然后您可以使用www.xyz.com在浏览器中打开代码,现在将允许访问