Невозможно сделать запрос CORS в ExtJS 6 - PullRequest
0 голосов
/ 13 ноября 2018

Итак, у меня есть локальный хост со страницей, которая отправляет запрос на удаленный сайт. Я пытаюсь сделать это так:

Ext.Ajax.cors = true;
Ext.Ajax.request({
    url: "http://remoteaddress.com",            
    method: "GET",
    headers: {
        "Access-Control-Allow-Origin": "*"
    },
    cors: true,
    useDefaultXhrHeader: false,
    success: function (result, request) {
        console.log("success!!!");
    }
});

Итак, я проследил за десятками потоков и установил эти параметры - cors, useDefaultXhrHeader и т. Д., Но безрезультатно.

Однако, если я создаю тот же запрос в почтальоне (запрос на тот же remoteaddress.com), тогда все в порядке.

Итак, что я делаю не так и как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Запрос с методом OPTIONS является предварительным запросом.

С msdna :

Предварительный запрос CORS - это запрос CORS, который проверяетпроверьте, понятен ли протокол CORS.

Это запрос OPTIONS, использующий три заголовка HTTP-запроса: Access-Control-Request-Method, Access-Control-Request-Headers и заголовок Origin.

Запрос предварительной проверки автоматически выдается браузером при необходимости.В обычных случаях разработчикам внешнего интерфейса не нужно самим создавать такие запросы.

Веб-сервер должен ответить на него заголовками, чтобы браузер мог выполнить фактический запрос.

HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: localhost
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
0 голосов
/ 13 ноября 2018

Вот быстрое решение для этого

Открыть терминал и запустить этот код

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_sess_1" --disable-web-security

Тогда просто используйте это новое окно Chrome для разработки, и как только вы разместите свой веб-сайт где-нибудь, это больше не вызовет проблем

* обратите внимание, что это MacOs Chrome *

...