Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отправка POST через JS без перехода на другую страницу (https://javascript.ru/forum/misc/8775-otpravka-post-cherez-js-bez-perekhoda-na-druguyu-stranicu.html)

m-mikle 12.04.2010 17:38

Отправка POST через JS без перехода на другую страницу
 
Мне нужно, чтобы JS отправил POST'ом необходимые переменные. Но при этом не должно быть перехода на другую страницу (То есть это не "submit()") и никаких данных возвращаться не должно. Просто POST отправка.

Для примера можно отправить переменную "abc" со значением "def" на "http://192.168.1.1/page.php" (Который уже сам сделает все остальное).

Как такое сделать?

B@rmaley.e><e 12.04.2010 17:49

Создаем невидимый фрейм, форму, устанавливаем форме атрибуты method="post", action="http://192.168.1.1/page.php", target равный name (или id?) фрейма, наполняем нужными данными и... submit();

m-mikle 12.04.2010 17:56

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 51319)
Создаем невидимый фрейм, форму, устанавливаем форме атрибуты method="post", action="http://192.168.1.1/page.php", target равный name (или id?) фрейма, наполняем нужными данными и... submit();

Да, но мне будет нужно отправить переменную со значением window.location.host , а во фрейме она даст адрес этого фрейма. Как тогда?

B@rmaley.e><e 12.04.2010 18:11

Вообще-то сама форма не будет находиться во фрейме. Она вообще может находиться в сферическом вакууме (т.е. не являться потомком какого-либо элемента) должна быть элементом DOM'а. Это во-первых.
Во-вторых, значение вы задаете один раз и оно ни к чему не привязано. Само собой, оно не изменится, когда запрос улетит во фрейм.

m-mikle 12.04.2010 18:14

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 51326)
Вообще-то сама форма не будет находиться во фрейме. Она вообще может находиться в сферическом вакууме (т.е. не являться потомком какого-либо элемента).

Аааа... понял о чем вы :)

Но скрипт мне нужен для userjs (В Опере и Мозиле) и в нем нужно обойтись без document.write() (Т.к. тогда исчезает все, кроме написанного этой функцией). А фрейм и форму в страницу только document.write()'ом умею вставлять.

B@rmaley.e><e 12.04.2010 18:16

http://javascript.ru/tutorial/dom/mo...bavlenie-v-dom

Kolyaj 12.04.2010 18:18

Цитата:

Сообщение от B@rmaley.e><e
Она вообще может находиться в сферическом вакууме (т.е. не являться потомком какого-либо элемента).

Если она не будет в документе, то не отправится. По крайней мере в некоторых браузерах.

Цитата:

Сообщение от m-mikle
А фрейм и форму в страницу только document.write()'ом умею вставлять.

Так научитесь.

B@rmaley.e><e 12.04.2010 18:23

Цитата:

Сообщение от Kolyaj
Если она не будет в документе, то не отправится. По крайней мере в некоторых браузерах.

Точно, в FF так не отправляется.

m-mikle 12.04.2010 18:31

Цитата:

Сообщение от Kolyaj (Сообщение 51329)
Так научитесь.

Спасибо, учусь. Но тут вопросик.
Там дан пример на добавление LI к UL с id="list"
// элемент-список UL
var list = document.getElementById('list')

// новый элемент
var li = document.createElement('LI')
li.innerHTML = 'Новый элемент списка'

// добавление в конец
list.appendChild(li)


А если нужно добавить <iframe src="http://192.168.1.1/page.php" бла-бла ></iframe> в body ?

e1f 12.04.2010 19:06

m-mikle, ищем :)


Часовой пояс GMT +3, время: 15:45.