2015-10-20 218 views
0

我一直在試圖最近使用AJAX的這個樣本表格數據從一個http://www.example.com域比較SQL數據庫。我的問題是readyState總是1,我的狀態總是0.它分別期望4和200。它也總是返回responseText =「」我查看了所有的StackOverflow,但沒有找到有用的幫助。AJAX/PHP/JS readyState = 1和Status = 0總是。無響應文本

我猛然一驚我的腦海裏可能是什麼問題,但我似乎無法得到它的工作。

*我也嘗試在這兩個JS和PHP設置文件權限,但它的作用是相同的。

*我使用的是專用的Web服務器來承載這一切,我沒有問題,運行大部分的腳本。

// HTML GenerateRep.html

藉口缺乏<和>標籤丟失,代碼將不會出現沒有他們。

form id="formgen" onsubmit="GenRep(this)" 
....form stuff.... 
button id="submit" type="submit">Submit</button 

// JAVASCRIPT GenerateRep.js

function GenRep(formgen) { 

var email = formgen['repemail']; 
var hash = formgen['reppass']; 
var first = formgen['firstname']; 
var last = formgen['lastname']; 
var territory = formgen['territory']; 

hash.value = CryptoJS.SHA256(hash.value); 

var login = email + ";" + hash.value + ";" + first + ";" + last + ";" + territory; 

Login(login); 


} 

function Login(login) { 
    var xhttp = new XMLHttpRequest(); 
     xhttp.onreadystatechange = function() { 
      if (xhttp.readyState == 4 && xhttp.status == 200) { 
       if(xhttp.responseText == "VALID") { 
        window.location.href = "success.html"; 
       } else if (xhttp.responseText == "INVALID") { 
        $("#login_error").text("Failed! Plese check your info."); 
       } else { 
        window.location.href = "error.php"; 
       } 
      } 
}; 
xhttp.open("GET", "Validate.php?q=" + login, true); 
xhttp.send(); 
} 

// PHP Validate.php

<?php 
header('Access-Control-Allow-Origin: *'); 
include ("ConnectDB.php"); 

// Check connection 

if ($conn->connect_error) { 

die("Connection failed: " . $conn->connect_error); 

} 

//THIS IS A TEST TO SEE IF reponseText FUNCTIONS. IT DOES NOT. 
//echo "testecho"; 


$whole = $_REQUEST['q']; 

$userPass = explode (";", $whole); 


$sql1 = "SELECT UName FROM Reps WHERE UName = '$userPass[0]'"; 
$result = $conn->query($sql1); 

if ($result->num_rows > 0) { 
$conn->close(); 
echo "INVALID"; 

} else { 

$sql = "INSERT INTO Reps (UName, Pass, FName, LName, Territory) VALUES ('$userPass[0]', '$userPass[1]', '$userPass[2]', '$userPass[3]', $userPass[4])"; 

if ($conn->query($sql) === FALSE) { 
$conn->close(); 
echo "Error: " . $sql . "<br>" . $conn->error; 

} 


$conn->close(); 
echo "VALID"; 

} 
?> 
+0

如果粘貼到瀏覽器的GET請求http://yoursite.com/Validate.php?q=data運行正常的腳本? – Thesee

+0

您確定PHP正在運行並返回響應嗎?我問的原因是因爲你的readyState沒有改變,這通常表示沒有從服務器返回通信。 –

+0

@參見 - 是的,我能夠讓它運行沒有問題。它完成了它需要做的並返回有效的內容。 –

回答

0

我以前 「評論」,而不是創建一個 「答案」,因爲我並沒有提出解決方案,只是一個調試步驟,以確保您的想法正在發生,實際上正在發生。

由於我的建議幫你找出問題,我創建的情況下,你想給我的「信用」這個「答案」。 :-)

相關問題