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";
}
?>
如果粘貼到瀏覽器的GET請求http://yoursite.com/Validate.php?q=data運行正常的腳本? – Thesee
您確定PHP正在運行並返回響應嗎?我問的原因是因爲你的readyState沒有改變,這通常表示沒有從服務器返回通信。 –
@參見 - 是的,我能夠讓它運行沒有問題。它完成了它需要做的並返回有效的內容。 –