2009-08-07 25 views
18

Tôi muốn đăng thông số cho URL bằng phương thức POST nhưng tôi không thể sử dụng biểu mẫu. Ngay cả khi tôi sử dụng biểu mẫu, nó sẽ phải được tự động đăng với sự tương tác của người dùng. Điều này có thể không? Tôi có thể làm cái này như thế nào?Đăng thông số vào url bằng phương thức POST mà không cần sử dụng biểu mẫu

+0

Điều này có thể giúp: http://stackoverflow.com/questions/28395/passing-post-values-with-curl – random

+1

Đó có phải là bất kỳ cách nào liên quan đến PHP không? – innaM

Trả lời

13

Bạn có thể sử dụng JavaScript và XMLHttpRequest (AJAX) để thực hiện một POST mà không sử dụng một hình thức. Kiểm tra this link. Hãy nhớ rằng bạn sẽ cần JavaScript được kích hoạt trong trình duyệt của bạn.

+1

Điều này sẽ _không hoạt động nếu URL nằm trên một tên miền khác. Đúng? –

+0

Nó sẽ hoạt động ngay cả khi URL nằm trên một tên miền khác. –

+0

@UweKeim RIGHT! –

0

có thể thực hiện bằng CURL hoặc AJAX. Câu trả lời cũng khó hiểu như câu trả lời.

4

cURL là một tùy chọn, sử dụng Ajax cũng như giải quyết các sự cố back-end với giao diện người dùng không quá gọn gàng.

Một bài rất hữu ích về làm việc đó mà không cURL là này một: http://netevil.org/blog/2006/nov/http-post-from-php-without-curl

Mã để làm điều này (chưa được kiểm tra, được cải thiện, từ các bài đăng 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

Sử dụng jQuery.post

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

Nếu bạn đang cố gắng liên kết đến nội dung nào đó, thay vì làm điều đó từ mã, bạn có thể chuyển hướng yêu cầu của mình qua: http://getaspost.appspot.com/

Các vấn đề liên quan