Он видел много ответов о том, как перенаправить на другую страницу после успешного вызова Ajax, но все они используют метод GET. Я бы хотел, чтобы передать мои параметры на новую страницу с помощью метода POST. Как я могу это сделать?Переадресация Ajax с использованием POST
ответ
Вы не можете программным образом настроить браузер для выполнения запроса POST, только XMLHTTPRequest
. Лучшее, что вы можете сделать, это имитировать его, создав новый form
элемент данных, которые вы хотите отправить, то вызов submit
на нем:
var params = {name: 'lonesomeday', website: 'stackoverflow'};
var form = document.createElement('form');
form.action = 'http://example.com';
form.method = 'post';
for (var key in params) {
if (params.hasOwnProperty(key) {
var field = document.createElement('input');
field.type = 'hidden';
field.name = key;
field.value = params[key]
form.appendChild(field);
}
}
document.body.appendChild(form);
form.submit();
Вы можете отправить запрос с помощью метода запроса POST с использованием XMLHttpRequest ... Я думаю, что создание новой формы для отправки является излишним? – jamiebarrow
@ jamiebarrow Я бы возразил против. Выполнение целого XMLHTTPRequest исключительно для того, чтобы получить URL-адрес, чтобы перейти, когда вы могли выполнить всю операцию в одном HTTP-запросе, является излишним. – lonesomeday
Хмм, вчера я читал это по-другому. У меня возникла проблема, заключающаяся в том, что при выполнении AJAX POST (с использованием jQuery.ajax) для URL-адреса, где ответ представляет собой постоянную переадресацию 301, библиотека выполняет запрос GET для нового местоположения. Однако в моем сценарии должен быть POST для нового URL-адреса через AJAX, а не перенаправить текущую страницу обычно на новый URL-адрес. Прочитав это снова, кажется, что O.P. спрашивает, как перенаправить страницу после выполнения обычной AJAX POST, запутался :) Извините, если я тоже смутил других! :) – jamiebarrow
Ну я столкнулся этот вопрос раньше, и единственный способ сделать это, кажется, (возможно, я ошибаюсь), определяя функцию обратного вызова успеха AJAX и перенаправляя ее из этой функции обратного вызова. Если вы хотите, вы можете отправить обратно URL-адрес перенаправления в ответ AJAX и прочитать URL-адрес переадресации в функции обратного вызова.
- 1. Данные POST с использованием AJAX POST
- 2. Переадресация на другую страницу с использованием php и ajax
- 3. Struts2 - Переадресация перекрестного домена с использованием метода POST
- 4. Переадресация асинхронных многостраничных файлов POST с использованием flXHR?
- 5. Переадресация на другой вид с использованием ajax-вызова в mvc
- 6. Переадресация с использованием JavaScript
- 7. Переадресация с использованием JS
- 8. SOLR - AJAX POST с использованием JqueryAjax
- 9. Ошибка AJAX POST с использованием Laravel
- 10. Ошибка 422 Ajax Post с использованием Laravel
- 11. POST OBJECTs с использованием AJAX для PHP
- 12. Вызов различных POST-переменных с использованием Ajax
- 13. Выполнение запроса POST с использованием Ajax
- 14. Отправка пользовательского ввода POST с использованием AJAX
- 15. Метод Ajax Post с использованием jquery
- 16. Запрос POST с использованием ajax в Django
- 17. post html поля формы с использованием AJAX
- 18. AJAX POST REQUEST с использованием jquery
- 19. Запрос Http POST с использованием AJAX
- 20. Невозможно отправить запрос POST с использованием AJAX
- 21. Переадресация на другой вид с использованием Ajax в Javascript
- 22. JQuery и вызов PHP с использованием AJAX с использованием POST
- 23. Переадресация страницы с помощью успешного запроса Ajax
- 24. Переадресация дублирующих URL-адресов с использованием htaccess
- 25. Liking Post Переадресация на страницу
- 26. Переадресация 302 перенаправления с jquery ajax
- 27. Переадресация Javascript на успех Ajax
- 28. jQuery AJAX Переадресация на страницу
- 29. Переадресация PHP с использованием сеанса
- 30. Простая (?) Переадресация с использованием .htaccess
Параметры не сохраняются в запросе POST, как в запросе GET, поэтому вам придется передавать свои параметры другим способом. – Eugene
Извините, просто для того, чтобы уточнить, хотите ли вы перенаправить текущую страницу на новый URL без AJAX, как если бы вы отправляли форму обычно в браузере или хотите, чтобы исходный AJAX POST теперь был направлен на новый URL-адрес, используя другой AJAX POST (вместо GET) в случае 301 Постоянного ответа на перенаправление? – jamiebarrow