2015-12-24 5 views
0

Есть ли способ перенаправить пользователя на определенный URL на основе того, что выходит из XMLHttpRequest()? Вот что я пытаюсь достичь:JS/JQuery: перенаправление на основе ответа XML

  1. хитов пользователя отправить, форма получает представлена, XMLHttpRequest() выпустил
  2. ответ, полученного от сервера, сохраненного в var hr
  3. If hr = abc, показывают содержание hr
  4. Если hr = xyz, перенаправлять пользователя http://www.something.com

Я ищу, если есть какой-либо предопределенный метод в JS или JQ для обработки таких переадресаций. Я понимаю, что перенаправления могут быть указаны в тегах <meta> в разделе <header> страницы, но если бы я это сделал, как я смогу добавить к нему условия? Я бы опубликовал копию сценария, который я попытался, но не могу, потому что прямо сейчас я понятия не имею, с чего начать!

Если кто-то интересуется сценарием, это веб-словарь/служба сопряжения. Итак, на странице сопряжения глагола, если пользователь вводит действительный глагол, отображается ответ (т. Е. Таблицы сопряжения). Однако, если пользователь вводит слово, которое является действительным, но не является глаголом, поэтому он не может быть сопряжен, я хочу, чтобы пользователь автоматически перенаправлялся на страницу словаря, на которой будет отображаться запись словаря введенного слова. Не уверен, что я объяснил это достаточно хорошо, но, пожалуйста, не стесняйтесь спрашивать, есть ли у вас какие-либо вопросы.

ответ

1

Попробуйте провести тестирование switch(request.responseText) и позвоните по номеру window.location.assign("http://your-url.com"); в предпочтительном случае «xyz»! Альтернативно window.open("http://anotherxxxwebsite.com") открывает ссылку в новом окне браузера.

1

Нет никакого предустановленного метода, но вы можете написать эту логику самостоятельно. В зависимости от вашего текущего API вы можете либо проверить, является ли возвращаемое значение URI (или каким-либо другим назначенным значением), а перенаправление соответственно. Предполагая отложенный объект, возвращенный с jQuery.ajax:

defer.done(function(data, textStatus, jqXHR) { 
    // assuming a string, but this could really be anthing, e.g. 
    // an object containing an appropriate attribute, etc. 
    if (data.indexOf('http') === 0) { 
     window.open(data); 
    } else { 
     // render your stuff 
    } 
}); 
Смежные вопросы