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, если не хотите, чтобы результаты были видны конечному пользователю.