Как эмитировать пост запрос посланый аяксом ....? Я попытался отправить теже даные на тотже файл и чтото ничё не вышло .. я туплю?
ajax var Ajax = window.XMLHttpRequest Добавь перед send() HTML: Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Я вот так делал .. если надо еще ответ получить от сервера, то добавь httpRequest.onreadystatechange = function() { твой_обработчик(httpRequest); }; перед httpRequest.open('POST', url, true); PHP: function getResult($var) { var httpRequest = false; var url = 'index.php'; if (window.XMLHttpRequest) { httpRequest = new XMLHttpRequest(); if (httpRequest.overrideMimeType) { httpRequest.overrideMimeType('text/xml'); } } else if (window.ActiveXObject) { try { httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } httpRequest.open('POST', url, true); httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); httpRequest.send('varvar=' + encodeURI($var)); }
небольшой набор функций для работы с ajax PHP: // (c) nc.STRIEM var resultId; function getXmlHttp() { 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; } function sendRequest(url, _resultId, method, query) { resultId = _resultId; var httpRequest = getXmlHttp(); var timeout; if(method == null) method = 'GET'; window.document.getElementById(resultId).innerHTML = '<center><img src="img/load.gif"></center>'; httpRequest.open(method, url, true); httpRequest.onreadystatechange = function() { if (httpRequest.readyState != 4) return; clearTimeout(timeout); if (httpRequest.status == 200) window.document.getElementById(resultId).innerHTML = httpRequest.responseText; else handleError(httpRequest.statusText); } if(query != null) httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') httpRequest.send(query); timeout = setTimeout( function(){ httpRequest.abort(); handleError("Time over");}, 10000); // таймаут return false; } function GetContents(url, method, query) { var httpRequest = getXmlHttp(); var timeout; if(method == null) method = 'GET'; httpRequest.open(method, url, false); if(query != null) httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') httpRequest.send(query); if (httpRequest.status == 200) return httpRequest.responseText; return httpRequest.status+' '+httpRequest.statusText; } function handleError(message) { window.document.getElementById(resultId).innerHTML = message; } function element(id) { return encodeURIComponent(window.document.getElementById(id).value); } пример использования http://taran.su/guest/
я так понял что ТС нужен не аякс запрос, а эмитация его, с помощью скриптового языка? а какой код ответа от сервера?
mr.The ответ есть .... Code: HTTP/1.1 200 OK Server: Zeus/4_3 Date: Mon, 25 Aug 2008 17:29:38 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Content-Type: text/xml; charset=ISO-8859-1 Expires: Thu, 19 Nov 1981 08:52:00 GMT Transfer-Encoding: chunked Pragma: no-cache X-Powered-By: PHP/4.3.4 63 Unknown Function 1. 0 я снифером словил пост данные Code: Method=POST /ajax/event_flash.php HTTP/1.1 POSTDATA=xajax=event_flash_set&xajaxr=1219678363229&xajaxargs[]=47534287&xajaxargs[]=mtcFlashCallback вот то что отсылается ... я пытался повторить .... PHP: $fp = fsockopen(_HOST, _PORT, $errno, $errstr, 30); $out .= "POST /ajax/event_flash.php HTTP/1.1 \r\n"; $out .= "Host: " . _HOST . "\r\n"; $out .= "Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n"; $out .= "Content-Length: " . strlen($data) . "\r\n"; $out .= "Referer: " . _HOST . "/\r\n"; $out .= "User-Agent: Opera/9.27 (Windows NT 5.1; U; ru)\r\n"; $out .= $cook; $out .= "Connection: close\r\n\r\n"; $out .= $data; fwrite($fp, $out); while (!feof($fp)) $answer .= fgets($fp, 1024); fclose($fp); снифер ещё какието пост данные словил но они были зашифрованы и всякие иероглифы место даных были. ..
тьфу млин ... я идиот .. там параметр xajaxr задаётся какойта функцией .... и каждый раз новое значение ... еси его поменять то выйдет ошибка Code: Error: The XML response that was returned from the server is invalid Response: а терь х знает де брать этот xajaxr
парси с пред идущей страницы. разбери полностью код ajax запроса, какие данные откуда беруться ну и тд... для перехвата http заголовков юзай Proxomitron. работает как локальный проксик, и заголовки оч хорошо показывает. только отключи все фильтры и включи показ post данных.
mr.The я ужо забросил это дело =) с моими знания аякса копать 30 JS файлов ... =)) не стоит это того ))) пля + закончились =\\