Просмотр полной версии : Пост запрос аяксом ...
Как эмитировать пост запрос посланый аяксом ....?
Я попытался отправить теже даные на тотже файл и чтото ничё не вышло ..
я туплю?
PandoraBox
25.08.2008, 17:55
var Ajax = window.XMLHttpRequest
Добавь перед send() Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
BlackSun
25.08.2008, 20:19
Я вот так делал .. если надо еще ответ получить от сервера, то добавь
httpRequest.onreadystatechange = function() { твой_обработчик(httpRequest); };
перед httpRequest.open('POST', url, true);
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));
}
nc.STRIEM
25.08.2008, 20:25
небольшой набор функций для работы с ajax
// (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 ответ есть ....
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
я снифером словил пост данные
Method=POST /ajax/event_flash.php HTTP/1.1
POSTDATA=xajax=event_flash_set&xajaxr=1219678363229&xajaxargs[]=47534287&xajaxargs[]=mtcFlashCallback
вот то что отсылается ... я пытался повторить ....
$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);
снифер ещё какието пост данные словил но они были зашифрованы и всякие иероглифы место даных были. ..
тьфу млин ... я идиот .. :D там параметр xajaxr задаётся какойта функцией .... и каждый раз новое значение ... еси его поменять то выйдет ошибка
Error: The XML response that was returned from the server is invalid
Response:
а терь х знает де брать этот xajaxr
а терь х знает де брать этот xajaxr
парси с пред идущей страницы. разбери полностью код ajax запроса, какие данные откуда беруться ну и тд...
для перехвата http заголовков юзай Proxomitron. работает как локальный проксик, и заголовки оч хорошо показывает. только отключи все фильтры и включи показ post данных.
mr.The я ужо забросил это дело =)
с моими знания аякса копать 30 JS файлов ... =)) не стоит это того )))
пля + закончились =\\
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot