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 20:44

Короче, я уже что только не перепробовал, ничего не получается.

Весь замысел был в том, что бы JS отправлял на http://192.168.1.1/page.php либо POST'ом, либо GET'ом адрес текущей страницы, и при этом пользователь ничего не замечал.

Пытался и фрейм сделать с адресом
"http://192.168.1.1/page.php?url=" + window.location.host
А page.php ловит адрес GET'ом. Но ничего не работает.

Как все таки сделать???

Skipp 13.04.2010 10:42

var xmlHttp=connect();
function connect(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
xmlHttp.open("GET","http://192.168.1.1/page.php?r="+Math.random()+"url="+window.location.host,true);
xmlHttp.send(null);

как-то так

m-mikle 13.04.2010 16:39

Цитата:

Сообщение от Skipp (Сообщение 51432)
<...>
как-то так

Хм... результата нет...

m-mikle 13.04.2010 16:45

Получилось сделать так:
var href = "http://192.168.1.3/page.php?url=" + window.location.href
href = href.replace('&', '(*)')
myImage = new Image()
myImage.src = href


replace для того, что бы символ "&" не заканчивал переменную в GET, а php перед занесением в БД уже обратно переведет.

НО
У меня Опера 10.51 сборка 3315 - все работает
На другом компе тоже Опреа 10.51 сборка 3315 - но не работает
192.168.1.3 это мой камп

Почему там не работает?
По БД видно, что изображение создается, но url в get'е пустое

exec 13.04.2010 18:11

var request = new XMLHttpRequest();
request.open('POST', 'http://192.168.1.1/page.php', true);
request.send('abc=def');

m-mikle 13.04.2010 18:23

Цитата:

Сообщение от exec (Сообщение 51486)
var request = new XMLHttpRequest();
request.open('POST', 'http://192.168.1.1/page.php', true);
request.send('abc=def');

Так не получается.

Вообщем-то меня и этот
var href = "http://192.168.1.3/page.php?url=" + window.location.href 
href = href.replace('&', '(*)') 
myImage = new Image() 
myImage.src = href
способ устраивает. Но я не понимаю, почему он на другом компе не работает?

Skipp 14.04.2010 09:19

пропустил в этой строке амперсанд=(
xmlHttp.open("GET","http://192.168.1.1/page.php?r="+Math.random()+"&url="+window.location .host,true);

m-mikle 14.04.2010 15:24

Цитата:

Сообщение от Skipp (Сообщение 51553)
пропустил в этой строке амперсанд=(
xmlHttp.open("GET","http://192.168.1.1/page.php?r="+Math.random()+"&url="+window.location .host,true);

Теперь работает, но в БД записываются только адреса 192.168.1.3, а остальные нет.
И скажите, пожалуцста зачем r=Math.random() ? И надо ли с ней что-то делать в page.php?


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