2013-05-15 71 views
0

答案,我試圖讓我連接到PHP文件,但是從服務器是什麼毛病,我不recive任何效應初探?XMLHttpRequest的服務器沒有

function request(){ 
    // Create our XMLHttpRequest object 
var hr = new XMLHttpRequest(); 

// Create some variables we need to send to our PHP file 
var url = "http://people.dsv.su.se/~pierre/courses/05_ass/ip3/3/3.7.1/example.php"; 
var number1 = document.getElementById("number1").value; 
var number2 = document.getElementById("number2").value; 
var vars = "?number1="+number1+"&number2="+number2 
hr.open("POST", url, true); 

// Set content type header information for sending url encoded variables in the request 
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
// Access the onreadystatechange event for the XMLHttpRequest object 

hr.onreadystatechange = function() { 
    if(hr.readyState == 4 && hr.status == 200) { 
    var return_data = hr.responseText; 

document.getElementById("result").innerHTML = return_data; 
} 
} 
// Send the data to PHP now... and wait for response to update the status div 
hr.send(vars); // Actually execute the request 
document.getElementById("result").innerHTML = "processing..."; 
} 

我沒有得到來自任何答案服務器是我做錯了嗎?

我現在已經嘗試把它寫在jQuery的insteed但仍然沒有來自服務器的響應

$(document).ready(function() { 

// Skicka nummrerna vid klick på #calculate 
$('#calculate').click(function() { 

var url = "http://people.dsv.su.se/~pierre/courses/05_ass/ip3/3/3.7.1/example.php?"; 
var number1 = document.getElementById("number1").value; 
var number2 = document.getElementById("number2").value; 
var numbers = url + number1 + "&" + number2 
if (window.XMLHttpRequest) 
{// Kod för nya webbläsare 
    xmlhttp=new XMLHttpRequest(); 
} 
else {//om det inte är en nyare webbläsare 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     // Skriv ut svaret från servern i result 
     document.getElementById("result").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET",numbers,true); 
xmlhttp.send(); 
alert(numbers); 
}); 
}); 
+1

是如何,如果你從服務器獲取任何答案你檢查?使用調試控制檯?如果請求狀態爲200且readystate爲4,那麼您的代碼只顯示任何內容,那麼您如何知道其他響應? – eis

+0

你看過檢查員,看看有沒有錯誤? –

+0

爲什麼不使用[jQuery](http://api.jquery.com/jQuery.ajax/)來簡化您的生活? – Catalin

回答

2

你就好像你在一個GET請求使用它們,但隨後設置你的要求格式化你的變量開啓POST。

[編輯:展示評論]

嘗試改變這兩條線。

hr.open("GET", url + vars, true); 

hr.send(); 

[編輯]完整的原始代碼的變化

function request(){ 
     // Create our XMLHttpRequest object 
    var hr = new XMLHttpRequest(); 

    // Create some variables we need to send to our PHP file 
    var url = "http://people.dsv.su.se/~pierre/courses/05_ass/ip3/3/3.7.1/example.php"; 
    var number1 =22;// document.getElementById("number1").value; 
    var number2 =22;// document.getElementById("number2").value; 
    var vars = "?number1="+number1+"&number2="+number2 
    hr.open("GET", url + vars, true); 

    // Set content type header information for sending url encoded variables in the request 
    //hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    // Access the onreadystatechange event for the XMLHttpRequest object 

    hr.onreadystatechange = function() { 
      if(hr.readyState == 4 && hr.status == 200) { 
       var return_data = hr.responseText; 

       document.getElementById("result").innerHTML = return_data; 
      } 
    } 
    // Send the data to PHP now... and wait for response to update the status div 
    hr.send(); // Actually execute the request 
    document.getElementById("result").innerHTML = "processing..."; 
} 
+0

試圖改變得到但沒有得到任何其他結果? –

+0

嘗試從'vars'中刪除前導'?'? – Klors

+0

不起作用,請求應該看起來像這樣; http://people.dsv.su.se/~pierre/courses/05_ass/ip3/3/3.7.1/example.php?number1=22&number2=22 –

0

您需要發送()與數據作爲帕拉姆您的要求。喜歡的東西:

params = "number1="+number1+"&number2="+number2; 
hr.send(params); 
+0

沒有工作,請求應該如下所示:example.php?number1 = 22&number2 = 22 –

+0

這是一個「get」請求。 – rGil

+0

糟糕,我沒有看到腳本底部的send()... – rGil

0

這裏是jQuery的格式的完整代碼:

$(document).ready(function() { 
    $('#calculate').click(function() { 
     var url = "http://people.dsv.su.se/~pierre/courses/05_ass/ip3/3/3.7.1/example.php?number1=" + $("#number1").val() + "&number2=" + $("#number2").val(); 
     $.ajax(url, { 
      complete: function (data, textStatus, jqXHR) { 
       //Put the code that handle the response here 
       $("#result").html(data.responseText); 
      } 
     }); 
    }); 
});