簡體   English   中英

想要使用JavaScript和Ajax使用curl將其發送到php腳本以連接到遠程服務器

[英]want to use JavaScript and Ajax to send to a php script using curl to connect to a remote server

請我想使用JavaScript和Ajax發送到使用Curl發送到遠程服務器的php腳本。 但是第一次我將發送到該php腳本時,我會得到結果,第一次后我將不再得到結果,只是我刷新頁面。 我想這樣做而不刷新頁面。 也就是說,我想發送到遠程服務器很多次並得到結果。

function go() {
    var xmlhttp = new XMLHttpRequest();
    var url = "url.php";
    var text = document.getElementById("text").value;
    var name = document.getElementById("name").value;
    var email = document.getElementById("email").value;
    var variables = "text="+text+"&name="+name+"&email="+email;

    xmlhttp.open("POST", url, true);variables in the request
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var data = xmlhttp.responseText;
            document.getElementById("flash-message").innerHTML = data;
        }
    }
    xmlhttp.send(variables);
}

我的PHP腳本

<?php
  if(!empty($_POST['text']) && !empty($_POST['name']) && !empty($_POST['email']) {
  $url = "http://url.com/api";
  $xmlString = "
    <profile>
      <names>
        <firstname>john</firstname>
        <lastname>doe</lastname>
      </names>
    </profile>";
    $fields = "XML=" . urlencode($xmlString);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    echo $response = curl_exec($ch);
    curl_close($ch);
  }else {
   echo "Please fill in those fields";
  }
?>

只要您能夠發送請求,就可以從php腳本獲得響應。

使用Firebug檢查您是否正在從瀏覽器網絡面板發送請求

在js代碼中,請使用console.log('calling go function')將一些幫助文本記錄到控制台面板中,以調用go()函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM