我是Web开发的新手,我试图理解为什么当我使用2 $ _POST时,第二个与第一个串联。这导致我收到一个错误:
未捕获的SyntaxError:JSON中位置11处的数字意外 在JSON.parse() 在XMLHttpRequest.AJAX_handle_response(HangManMath.js:77)
任何与该代码有关的其他技巧以及可以帮助我更好地理解AJAX编程的资源都将受到赞赏。
我对PHP不太了解,但是我已经尝试了一切。我的代码在下面。
$_POST = json_decode(file_get_contents('php://input'), true);
$response = "";
if (isset($_POST['guess']) && $_POST['guess'] !== '') {
$guess = $_POST['guess'];
if ($guess === 3)) {
$response = "Correct";
}
else {
$response = "Incorrect";
}
$response = json_encode($response);
header('Content-Type: application/json');
echo $response;
}
$_POST = json_decode(file_get_contents('php://input'), true);
if (empty($_POST["current_number"])) {
if($_POST["response-p"] === "Correct!"){
$current_number = 2; // $_POST["current_number"];
$current_number = intval($current_number);
$current_number++;
}
else {
$current_number = 1;//$current_number;
}
$current_number = json_encode($current_number);
echo $current_number;
}
// JAVASCRIPT
function Current_question(current, response){
current_number = document.getElementById(current).value;
response_p = document.getElementById(response).value;
console.log("Response: " + response_p);
console.log("Element id: " + current_number);
let req1 = new XMLHttpRequest();
req1.addEventListener("load", Current_question_status);
req1.open("POST", "HangManMath.php", true);
req1.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
req1.send(JSON.stringify(current_number, response_p));
}
function Current_question_status(){
console.log("Handeling Current_Question");
let current_number = this.responseText;
console.log("Before JSON parse..." + current_number);
current_number = JSON.parse(current_number);
console.log("After JSON parse..." + current_number);
current_number = parseInt(current_number);
if(AJAX_handle_response === "Correct"){
current_number++;
}
document.getElementById("current_number").innerHTML = current_number;
}
// Start an AJAX request with a JSON payload,
// sent via the POST http method to the server
// script (process_guess.php).
function AJAX_start(payload){
console.log("Sending new value to the server.");
console.log(payload);
let req = new XMLHttpRequest();
req.addEventListener("load", AJAX_handle_response);
req.open("POST", "HangManMath.php", true);
req.setRequestHeader("Content-Type", "application/json;charset=UTF-
8");
req.send(JSON.stringify(payload));
}
// Handles the server's response, when it is received.
function AJAX_handle_response(){
console.log("Handling server response: ");
let payload = this.responseText;
console.log("... Response text: " + payload);
if(payload === "")
return false;
payload = JSON.parse(payload);
// decode the guess and result from the server
let result;
if(payload === "Incorrect"){
result = "Incorrect!";
}
else{
result = "Correct!";
}
document.getElementById("response-p").innerHTML = result;
// Now we want to clear the input box as well,
// to make room for the next guess.
document.getElementById("guess").value = "";
return result;
}
我希望一个POST为“正确”,另一个POST为“ 3”
我实际上正在“正确” 3