2009-08-07 6 views
18

Desidero inviare parametri a un URL utilizzando il metodo POST ma non è possibile utilizzare un modulo. Anche se io uso un modulo, dovrebbe essere auto-postato senza interazione con l'utente. È possibile? Come posso fare questo?Pubblicazione di parametri in un URL utilizzando il metodo POST senza utilizzare un modulo

+0

Questo può aiutare: http://stackoverflow.com/questions/28395/passing-post-values-with-curl – random

+1

È in qualche modo collegato a PHP? – innaM

risposta

13

Si potrebbe utilizzare Javascript e XMLHTTPRequest (AJAX) per eseguire un POST senza utilizzare un modulo. Controllare this link out. Tieni presente che per il tuo browser è necessario avere JavaScript abilitato.

+1

Questo non funzionerebbe se l'URL si trova su un altro dominio. Destra? –

+0

Funzionerebbe anche se l'URL si trova su un altro dominio. –

+0

@UweKeim A DESTRA! –

0

può essere fatto con CURL o AJAX. La risposta è altrettanto criptica come risposta.

4

cURL è un'opzione, anche l'utilizzo di Ajax risolvendo i problemi di back-end con il front-end non è così semplice.

Un utilissimo post su farlo senza cURL è questa: http://netevil.org/blog/2006/nov/http-post-from-php-without-curl

Il codice per fare questo (non testato, non migliorata, dal post sul blog):

function do_post_request($url, $data, $optional_headers = null) 
{ 
    $params = array('http' => array(
       'method' => 'POST', 
       'content' => $data 
      )); 
    if ($optional_headers !== null) { 
     $params['http']['header'] = $optional_headers; 
    } 
    $ctx = stream_context_create($params); 
    $fp = @fopen($url, 'rb', false, $ctx); 
    if (!$fp) { 
     throw new Exception("Problem with $url, $php_errormsg"); 
    } 
    $response = @stream_get_contents($fp); 
    if ($response === false) { 
     throw new Exception("Problem reading data from $url, $php_errormsg"); 
    } 
    return $response; 
} 
24

Utilizzando jQuery.post

$.post(
    "http://theurl.com", 
    { key1: "value1", key2: "value2" }, 
    function(data) { 
    alert("Response: " + data); 
    } 
); 
-1

Se si sta tentando di collegarsi a qualcosa, piuttosto che farlo dal codice è possibile reindirizzare la richiesta tramite: http://getaspost.appspot.com/