Как предотвратить выполнение браузером предварительной проверки в перенаправлении 302? [Дубликат]

Используя ES2017, вы должны иметь это как объявление функции

async function foo() {
    var response = await $.ajax({url: '...'})
    return response;
}

и выполнить его следующим образом.

(async function() {
    try {
        var result = await foo()
        console.log(result)
    } catch (e) {}
})()

Или синтаксис Promise

foo().then(response => {
    console.log(response)

}).catch(error => {
    console.log(error)

})
17
задан adaam 22 May 2015 в 18:58
поделиться

2 ответа

Я думаю, что это сообщение ( Как применить кеш предпродажного кода CORS ко всему домену ) в значительной степени говорит обо всем этом - вы не можете сделать этого

простым решением является добавление обратного прокси-сервера к прокси-серверу, обслуживающему ваше угловое приложение (например, nginx) для маршрутизации вызовов RESTful через один и тот же домен, например appdomain.com/api -> apidomain.com.

10
ответ дан Community 26 August 2018 в 01:37
поделиться

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

Вот простой фрагмент, который можно использовать с nginx.

 location / {
    if ($request_method = 'OPTIONS') {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
        add_header 'Access-Control-Max-Age' 1728000;
        add_header 'Content-Type' 'text/plain charset=UTF-8';
        add_header 'Content-Length' 0;
        return 204;
     }
}

Как только запрос предварительной проверки будет успешным, тогда можно просто добавить «Access-Control-Allow-Origin» и другие необходимые вещи к запросам «GET», «POST» и т. д. ...

2
ответ дан outboundexplorer 26 August 2018 в 01:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: