Axios -请求头内容类型不存在于控制-允许-头列表中- ElasticSearch

tmb3ates  于 2023-10-17  发布在  ElasticSearch
关注(0)|答案(1)|浏览(76)

我对很多这种技术都是新手,但我认为我已经诊断出了我的问题,需要一些帮助。我在SO上看到过很多关于这个问题的帖子,但是没有一个有效,尽管它们帮助我诊断了这个问题。
我相信问题是当我发送标题Content-Type w/我的飞行前w/ Axios,它失败了.这可能是由于小写/大写?错误有小写,但我在服务器上都试过了,没有运气。
基本上,如果我不指定任何头,Axios使用json作为内容类型,它可以工作,但一旦我指定Content-Type,我的pre-flight就会失败(即使我认为post会工作..)。
这里是elasticsearch.yml

cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled : true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-Length
#http.cors.allow-credentials: true

这是我的JS,我正在Visual Studio 2017中测试BTW W/Office加载项解决方案,我认为它使用IE作为浏览器。
主要功能:

var URL = "https://elasticsearch:9200/users/_search"
const data = {
    "query": {
        "match": {
            "name": "freesoftwareservers"
        }
    }
};
Do_Axios('get', URL, data, null, false)
Do_Axios('post', URL, data, null, false)

Do_Axios

async function Do_Axios(method, URL, data, headers, withCredentials) {
    return axios({
        method: method,
        url: URL,
        withCredentials: withCredentials,
        //contentType: 'application/json', // does nothing
        //data: JSON.stringify(data), //Causes urlformencoded which is wrong
        data: data, //caues type to be json and I get error
        headers: {
            //"Content-Type": "application/json"
        },
    })
        .then(function (response) {
            console.log("Axios " + method + " response:");
            console.log(response)
            return response;
        })
        .catch(function (error) {
            console.log(error);
        });
}

注意:如果我注解掉//data,我可以得到/post,但是post不会运行我的查询。如果我取消注解data,那么Axios使用urlformencoded,但这不起作用。
目前,我已经能够通过urlformencoded查询搜索API,但我想修复我正确POST的能力,以解决未来的错误。我不确定如果我打开一个请求,问题应该指向Axios还是Elasticsearch

oknwwptz

oknwwptz1#

我发现了这些片段,这是需要添加到我的NGINX代理配置中的魔法,这就是问题所在:

proxy_pass_header Access-Control-Allow-Origin;
proxy_pass_header Access-Control-Allow-Methods;
proxy_hide_header Access-Control-Allow-Headers;
add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type';
add_header Access-Control-Allow-Credentials true;

https://gist.github.com/sahilsk/b16cb51387847e6c3329

相关问题