Как сделать Post с jquery таким образом, чтобы перенаправление с сервера было правильно отображено? - PullRequest
1 голос
/ 28 февраля 2012
$j.ajax({
        type: "POST",
        url: 'http://acme.host.vhost/objects/create/',
        dataType: 'http',
        async: false,
        data: {object: data},
        success: function (msg) {
            // window.location = 
            alert(msg);
        },
        statusCode:{
            200: function(){
                alert(200);
            }
        }
    });

В инспекторе я вижу, что ответом является целая веб-страница. Как изменить мой запрос POST, чтобы браузер фактически был перенаправлен на эту веб-страницу?

предупреждение (200) происходит, так что .. все в порядке? но успех: не срабатывает. = \

1 Ответ

1 голос
/ 28 февраля 2012

ajax работает как «вторичный браузер», который отправляет запросы, получает его - и на этом останавливается.он не касается экрана вашего браузера, пока вы не проанализируете его содержимое (и не выполните все, что следует)Сервер передает свои команды клиентской стороне.Для этого предпочтительно использовать JSON, отправляя команды с сервера клиенту, например:

{
    "errors": [],   //an array of all errors from the server (like validation and stuff)
    "details": [    //an array of additional details the client side must kno
        "redirect": "url_here.html"
    ],  
    data: {}      //the actual payload of the request. may be html, or further data or templates etc.
}

, одно из моих приложений возвращает объект JSON со свойством details в:

  • знаю, на какой странице результата поиска я на
  • сколько она содержит
  • какой был поисковый запрос

и т. Д.

поэтому вместо того, чтобы возвращать (или в этом случае «повторять») страницу результатов в HTML, используйте JSON для перенаправления пользователя на страницу «успеха».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...