Ошибка доступа при использовании API от axios - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь использовать свой собственный API от axios, однако я получаю ошибку доступа

outputs:1 Access to XMLHttpRequest at VM416:1 Cross-Origin Read Blocking (CORB) blocked cross-origin response http://192.168.10.10:9200/outputs/_search?source=%7B%22query%22:%7B%22match_all%22:%7B%7D%7D%7D&source_content_type=application%2Fjson with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.

Я использую усадьбу.

При посещении API из браузера я получаю ожидаемые результаты (url - http://192.168.10.10:9200/outputs/_search?source=%7B%22query%22:%7B%22match_all%22:%7B%7D%7D%7D&source_content_type=application%2Fjson)

Если я показываю заголовки из chrome на странице с ошибкой, это заголовки.


Provisional headers are shown
Accept: application/json, text/plain, */*
Origin: http://192.168.10.10
Referer: http://192.168.10.10/outputs
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36

Я добавил CORS вasticsearch.yml

Elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "X-Requested-With, Content-Type, Content-Length, X-User"
http.cors.allow-methords : OPTIONS, HEAD, GET, POST, PUT, DELETE

Метод запроса есть.

Vue.js
<script>
    import axios from 'axios';
    import { loadProgressBar } from 'axios-progress-bar'
    import 'axios-progress-bar/dist/nprogress.css'

    loadProgressBar();


    const query = {
        query: {
            "match_all": {}
        }
    };



    export default {


        data: function() {
            return {
                outputs: []
            }
        },


        mounted() {
            axios.get('http://192.168.10.10:9200/outputs/_search', {
                params: {
                    source: JSON.stringify(query),
                    source_content_type: 'application/json'
                }
            }).then((res) => {
                console.log(res);
            });

            axios.get('/api/output')
                .then((response) => {
                    this.outputs = response.data;
                    console.log('Outputs loaded')
                })
                .catch((err) => {
                    console.log(err);
                });



        },

    }


</script>

Ожидаемый возврат - API

Добавлена ​​информация

  • Код статуса ответа 200 OK
Request URL: http://192.168.10.10:9200/outputs/_search?source=%7B%22query%22:%7B%22match_all%22:%7B%7D%7D%7D&source_content_type=application%2Fjson
Request Method: GET
Status Code: 200 OK
Remote Address: 192.168.10.10:9200
Referrer Policy: no-referrer-when-downgrade

Еще одна ошибка в консоли.

Access to XMLHttpRequest at 'http://192.168.10.10:9200/outputs/_search?source=%7B%22query%22:%7B%22match_all%22:%7B%7D%7D%7D&source_content_type=application%2Fjson' from origin 'http://192.168.10.10' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
app.js:1455 Uncaught (in promise) Error: Network Error
    at createError (app.js:1455)
    at XMLHttpRequest.handleError (app.js:990)

И, насколько я могу судить, заголовка ответа на звонок нет?

...