Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.10.2014, 16:41
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

одним XMLHttpRequest одновременно передать и получить
Привет всем!

Нужно одним XMLHttpRequest передать переменную и получить ответ:

xhttp3=new XMLHttpRequest();
xhttp3.onreadystatechange=function() {
if (xhttp3.readyState==4 && xhttp3.status==200) {
document.getElementById('ajax').innerHTML=xhttp3.r esponseText; alert(xhttp3.responseText);}
}

xhttp3.open('POST','server.php',true);
xhttp3.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp3.send("zaca="+Prov);


alert использую чтоб вывести ответ сервера.

сервер:

<?
echo 22;
?>
Ответить с цитированием
  #2 (permalink)  
Старый 10.10.2014, 16:45
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

во первых есть спец теги для выделения кода. во вторых, что именно не получается? посмотри в консоль, может там ошибки какие
Ответить с цитированием
  #3 (permalink)  
Старый 10.10.2014, 16:50
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

Сообщение от skrudjmakdak Посмотреть сообщение
во первых есть спец теги для выделения кода. во вторых, что именно не получается? посмотри в консоль, может там ошибки какие
Отправлять данные отправляет, а ответ в виде числа "22" не приходит.
Ответить с цитированием
  #4 (permalink)  
Старый 10.10.2014, 17:01
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

в network'е (в хроме он так называется) смотрели? что отправляется и что приходит?
Ответить с цитированием
  #5 (permalink)  
Старый 10.10.2014, 17:11
Профессор
Отправить личное сообщение для wadim Посмотреть профиль Найти все сообщения от wadim
 
Регистрация: 20.01.2014
Сообщений: 150

Сообщение от skrudjmakdak Посмотреть сообщение
в network'е (в хроме он так называется) смотрели? что отправляется и что приходит?
Я для проверки использую только alert, я же говорю с отправкой нет проблем, код работает, я хачу этим кодом еще и ответ получить в виде числа 22.
Ответить с цитированием
  #6 (permalink)  
Старый 10.10.2014, 19:46
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var XMLRequest;

(function() {
	var req, reqTimeout,
		_XMLRequest = XMLHttpRequest || window.ActiveXObject && function() {
			return new ActiveXObject('Msxml2.XMLHTTP');
		}
	XMLRequest = function(action, data, callback, onError) {
		var i, keys = [];
		if(req) {
			clearTimeout(reqTimeout);
			req.abort();
			req = null;
		}
		req = new _XMLRequest();
		req.open('POST', action, true);
		req.onreadystatechange = function() {
			if(req.readyState != 4) return;
			clearTimeout(reqTimeout);
			var reqTmp = req;
			req = null;
			if(reqTmp.status == 200) callback(reqTmp.responseText);
			else if(onError) onError(reqTmp.statusText);
		};
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		for(i in data) keys.push(i + '=' + encodeURIComponent(data[i]));
		req.send(keys.join('&') || null);
		reqTimeout = setTimeout(function() {
			req.abort();
			req = null;
			if(onError) onError('Timeout');
		}, 3E4);
	}
})();


XMLRequest('server.php', {foo: true}, function(data) {
     document.getElementById('ajax').innerHTML = data;
});



Последний раз редактировалось ruslan_mart, 10.10.2014 в 20:59.
Ответить с цитированием
  #7 (permalink)  
Старый 10.10.2014, 20:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Ruslan_xDD
keys.join('&') || null
А зачем || null? Где ты видел функции с большой буквы? Какое отношение эта функция имеет к XML (о чем намекает ее имя)?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 10.10.2014, 20:54
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

danik.js, да ладно, не придирайся, тут всё в порядке. Код взял из своей либы, давно уже писал, у меня ф-ция просто request называется. Тут назвал XMLRequest, чтобы автору было понятнее, что речь идёт о XMLHttpRequest.

Сообщение от danik.js
А зачем || null?
Ну а тут ты прав, наверное.
Ответить с цитированием
  #9 (permalink)  
Старый 11.10.2014, 22:43
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от wadim
Я для проверки использую только alert
Из старого, как раз с алертами:

if (link.status==200)
	show_totals(link.responseText);
else
	alert(decodeURI(link.statusText));


Да, на сервере

$errors = function($code) {
	$codes=array(
		'403'=>'Требуется авторизация',
		'404'=>'Продукт не найден',
		'500'=>'Сбой на сервере',
	);
	header('HTTP/1.0 '.$code.' '.rawurlencode($codes[$code]));
	exit;
};

Последний раз редактировалось kostyanet, 11.10.2014 в 22:46.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
XMLHttpRequest как с php передать массив на яваскрипт? wadim Общие вопросы Javascript 3 16.03.2014 14:05