Показать сообщение отдельно
  #10 (permalink)  
Старый 02.04.2015, 18:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Нельзя в рамках JS принять на другой странице POST данные, только GET. Пример я же вам и написал, а передать можно либо формой, либо сформировать url запроса, который присвоить объекту location. Например, пусть страница 1.html имеет форму:
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body>

<form action="2.html">
    <input name="key1" value="11" />
    <input name="key2" value="22" />
    <input type="submit" value="Send" />
</form>

</body> 
</html>

При ее отправлении (а по умолчанию это отправка методом GET), будет запрошена страница 2.html с передачей параметров запроса. Отправьте форму и увидите url в адресной строке браузера.
Страница 2.html содержит JS-сценарий, который получает из url параметры запроса - имена полей формы и их значения:
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body>
<div id="name"></div>
<script>
    var data = location.search.substring(1).split('&'), s = '';
    while(d = data.shift()) { 
        d = d.split('=');
        s += 'Key: ' + d[0] + ', valye: ' + d[1] + '<br>';
    }
    document.getElementById('name').innerHTML = s;  
</script>
</body> 
</html>

Если же создается некий объект (в JS нет вообще ассоциативных массивов, есть объекты), то нужно этот объект преобразовать в строку GET-параметров:
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
</head> 
<body>
<script>
var o = {
    key1 : 11,
    key2 : 22
}, a = [];
//формируем параметры запроса
for(k in o) a.push(k + '=' + o[k]);
//отправляем запрос
location.href = '2.html?'+a.join('&');
</script>
</body> 
</html>

Последний раз редактировалось laimas, 02.04.2015 в 18:04.
Ответить с цитированием