Ajax запрос 303 ответ CORS проблема

Я пытаюсь имитировать запрос формы с помощью jquery. Форма входит на сервер, который возвращает ответ 303 и перенаправляет пользователя на главную страницу.

Это отлично работает при использовании формы. Однако при попытке сделать это с помощью вызова ajax я получаю следующую ошибку:

XMLHttpRequest cannot load [redirect url]. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin [origin-url] is therefore not allowed access.

Я понимаю, что это ошибка CORS и может быть решена путем реализации CORS, но я не понимаю, почему она не может функционировать так же, как форма.

Мой звонок по Ajax:

jQuery.ajax({
            url: "[same url as the form]",
            type: "post",
            data: formData
            });

Гугл, который я сделал, только возвращает результаты, пытаясь предотвратить 303 перенаправления, поэтому кажется, что нормальная реакция следует за перенаправлением.

Что мне не хватает? Я застрял, чтобы реализовать CORS?

1 ответ

Решение

Я понимаю, что это ошибка CORS и может быть решена путем реализации CORS, но я не понимаю, почему она не может функционировать так же, как форма.

Использование обычной формы не дает полученные данные в JavaScript, работающий на другом сайте.

Та же политика происхождения защищает данные (которые могут быть конфиденциальными между пользователем и другим веб-сайтом).

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

Я застрял, чтобы реализовать CORS?

CORS - это стандартный подход к проблеме.

JSONP - это хак, который выполняет ту же работу.

Прокси - это возможное решение.


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

Другие вопросы по тегам