Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Пост запрос аяксом ... (https://forum.antichat.xyz/showthread.php?t=82322)

Doom123 25.08.2008 17:45

Пост запрос аяксом ...
 
Как эмитировать пост запрос посланый аяксом ....?
Я попытался отправить теже даные на тотже файл и чтото ничё не вышло ..
я туплю?

PandoraBox 25.08.2008 17:55

ajax
 
var Ajax = window.XMLHttpRequest

Добавь перед send()
Код HTML:

Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

BlackSun 25.08.2008 20:19

Я вот так делал .. если надо еще ответ получить от сервера, то добавь
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'urltrue);
    
httpRequest.setRequestHeader("Content-Type""application/x-www-form-urlencoded");
    
httpRequest.send('varvar=' encodeURI($var));



nc.STRIEM 25.08.2008 20:25

небольшой набор функций для работы с 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_resultIdmethodquery)
{    
    
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(methodurltrue);
    
    
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(urlmethodquery)
{
    var 
httpRequest getXmlHttp();
    var 
timeout;
    if(
method == null)
        
method 'GET';
    
httpRequest.open(methodurlfalse);
    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 25.08.2008 21:22

я так понял что ТС нужен не аякс запрос, а эмитация его, с помощью скриптового языка?
Цитата:

Я попытался отправить теже даные на тотже файл и чтото ничё не вышло ..
а какой код ответа от сервера?

Doom123 25.08.2008 21:24

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

вот то что отсылается ... я пытался повторить ....

PHP код:

        $fp fsockopen(_HOST_PORT$errno$errstr30);
        
        
$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($fp1024);
        
        
fclose($fp); 

снифер ещё какието пост данные словил но они были зашифрованы и всякие иероглифы место даных были. ..

Doom123 25.08.2008 21:50

тьфу млин ... я идиот .. :D там параметр xajaxr задаётся какойта функцией .... и каждый раз новое значение ... еси его поменять то выйдет ошибка

Код:

Error: The XML response that was returned from the server is invalid
Response:

а терь х знает де брать этот xajaxr

mr.The 25.08.2008 22:21

Цитата:

а терь х знает де брать этот xajaxr
парси с пред идущей страницы. разбери полностью код ajax запроса, какие данные откуда беруться ну и тд...

для перехвата http заголовков юзай Proxomitron. работает как локальный проксик, и заголовки оч хорошо показывает. только отключи все фильтры и включи показ post данных.

Doom123 25.08.2008 22:37

mr.The я ужо забросил это дело =)

с моими знания аякса копать 30 JS файлов ... =)) не стоит это того )))


пля + закончились =\\


Время: 19:58