Jump to content
  • 0

не js работает ридерект с xmlhttprequest


vvsh
 Share

Question

*не работает js редирект с xmlhttprequest

тут такое дело, после запроса к php с помощью ajax (xmlhttprequest), скрипт может вернуть либо ошибку, либо все ок, и переадресовать на другую страницу, но такого не происходит, почему через xmlhttprequest не работает, а когда я использовал jquery, всё было ок.

заранее спс

вот где мона посмотреть всё:

http://vvsh.ru/ - кнопка вход

user: test

pass: test12

после входа должен происходить редирект, он даже добавляется вместе с картинкой, но ничего не происходит

Edited by vvsh
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Скрипт, который ты передаешь в ответе сервера не выполняется. Таков уж аякс. Я вижу 2 решения.

1) Правильное: отдавать не скрипт и картинку, а true/false. На стороне клиента смортеть, что пришло и в зависимости от этого выставлять нужную картинку и делать редирект.

2) Не очень правильно: вырезать из ответа содержимое тега script. Создать тег script, поместить в него вырезанное и полученное приаппендить к тегу head, тогда скрипт выполнится.

3) Еще раз не очень правильно: вырезать из ответа содержимое тега script и прогнать через eval.

4*) Еще можно использовать всякие AJAX-фреймворки, которые автоматически делают пункты 2 или 3. jQuery делает, поэтому он и работал.

Link to comment
Share on other sites

  • 0

вот первое я хотел сделать, но потом подумал, у меня так каждая форма через аякс, все переделывать, как-то не хочется

не подскажешь как правильно сделать 2 или 3?

я точно не знаю как именно вырезать.

Link to comment
Share on other sites

  • 0
1) Правильное: отдавать не скрипт и картинку, а true/false. На стороне клиента смортеть, что пришло и в зависимости от этого выставлять нужную картинку и делать редирект.
вот первое я хотел сделать, но потом подумал, у меня так каждая форма через аякс, все переделывать, как-то не хочется

Поскольку в случае "все ок," должен происходить редирект, то картинку вставлять совсем не обязательно - просто передать с сервера какой-то код(ХХХ). В функции _PostForm(name,options) добавить проверку:

если ответ( ххх) - window.location...

если нет - выполнять дальше

document.getElementById(options.resid).innerHTML=data; ("Малой кровью и на территории врага")

Edited by dyadya
Link to comment
Share on other sites

  • 0
я же говорил, мне лень переделывать все js и php скрипты под определенный ответ.

В одном JS скрипте добавить две строки... (на обработку других форм они влиять не будут)

В ответ сервера в начало добавить пару знаков...

Edited by dyadya
Link to comment
Share on other sites

  • 0

Я имел ввиду добавить в _PostForm(name,options) проверку ответа сервера:

data = xmlhttp.responseText;

if(data == 'rdrkt'){window.location.href='...'};

document.getElementById(options.resid).innerHTML=data;

Если авторизация прошла успешно, PHP-скрипт отправляет строку 'rdrkt' - происходит переадресация. При любом другом ответе программа работает как обычно...

Edited by dyadya
Link to comment
Share on other sites

  • 0
а ты видел скока у меня там функций которые вызывают этот _PostForm? мне что для каждого свой вариант делать?

Уважаемый! Сколько бы функций не вызывало Ваш _PostForm, переадресация произойдет, только в случае успешной авторизации(когда сервер ответил строкой 'rdrkt'). Вы хотели самый простой вариант. Я проще предложить не могу. Не устраивает, сделайте специально для авторизации отдельную функцию

_PostFormRDR и пользуйтесь ней наздоровье...

Edited by dyadya
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy