одним 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; ?> |
во первых есть спец теги для выделения кода. во вторых, что именно не получается? посмотри в консоль, может там ошибки какие
|
Цитата:
|
в network'е (в хроме он так называется) смотрели? что отправляется и что приходит?
|
Цитата:
|
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; }); :) |
Цитата:
|
danik.js, да ладно, не придирайся, тут всё в порядке. :) Код взял из своей либы, давно уже писал, у меня ф-ция просто request называется. Тут назвал XMLRequest, чтобы автору было понятнее, что речь идёт о XMLHttpRequest.
Цитата:
|
Цитата:
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; }; |
Часовой пояс GMT +3, время: 21:36. |