2015-12-29 2 views
-1

Когда я пытаюсь использовать AJAX POST, следующий html не работает.

<script> 
function call_hmm_scan() { 
var specie = document.getElementById("specie_name").value; 
var loci = document.getElementById("locus_id").value; 

var params="specie_name=" + specie + "&locus_id=" + loci 

    var xmlhttp = new XMLHttpRequest(); 

    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById("domains").innerHTML = xmlhttp.responseText; 
     } 
    }; 

//  xmlhttp.open("GET", "http://shenlab.sols.unlv.edu/kwatanabe/ajax_test.php?" + params, true); 
//  xmlhttp.send(); 

    xmlhttp.open("POST", "http://shenlab.sols.unlv.edu/kwatanabe/ajax_test.php", true); 
    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.send(params); 
} 
</script> 

Мой PHP код в "ajax_test.php" выглядит следующим образом:

<?php 
$specie = $_POST["specie_name"]; 
$loci = $_POST["locus_id"]; 
echo("$specie<br>"); 
echo("$loci"); 
?> 

Когда я раскомментировать из ГЭТ строки в моем HTML, а также изменить $ _POST до $ _REQUEST в моем PHP, это работает!!

xmlhttp.open("GET", "http://shenlab.sols.unlv.edu/kwatanabe/ajax_test.php?" + params, true); 
xmlhttp.send(); 

Почему не работает POST?

+1

Почему вы не используете [ 'jQuery.post()'] (http://api.jquery.com/jquery.post /) вместо этого? Вы ограничены проектом ..? – Darren

ответ

2

Проблема в том, что этой линии,

xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

xhttp не определен в коде.

Таким образом, измените

xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

в

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
+0

Большое спасибо. Это поставило проблему. Не могу поверить, что я пропустил это! –

+0

@ KennethWatanabe Рад слышать. Пожалуйста, примите * ответ, если он решил вашу проблему. :) –

Смежные вопросы