[英]AJAX POST returning null values
我已經嘗試並測試了各種方法來完成此任務大約一天。 請注意,我正在簡單地構建它,然后繼續前進!
我有一個包含文本區域和兩個輸入字段的表單。 輸入字段允許XMLHttpRequest
發送與用戶名有關的信息,以及消息-發送至我要創建的聊天室。
我的請求存在的問題就是,我可以發送信息,並將行插入數據庫中,但是我無法獲得任何信息! 您將在下面的代碼中看到我已發出警報,以檢查響應文本是什么,但返回為null(不是undefined
,而是""
)。 請檢查以下代碼:
function insertMessage() {
var username = document.getElementById('username').value;
var message = document.getElementById('message').value;
var queryString = "username=" + username + "&message=" + message;
// send the username and message information to be inserted into the database
var url = 'classes/chatroom/chatroom.upload.php';
// create xml request
var request = createCORSRequest("POST", url)
// create a function that will receive data sent from the server
request.onreadystatechange = function () {
if (request.readyState == 4 && request.status == 200) {
alert(request.responseText);
}
}
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.send(queryString);
}
function createRequest(method, url) {
var thisRequest = new XMLHttpRequest();
if ("withCredentials" in thisRequest) {
// thisRequest has 'withCredentials' property only if it supports CORS
thisRequest.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") { // if IE use XDR
thisRequest = new XDomainRequest();
thisRequest.open(method, url);
} else {
thisRequest = null;
}
return thisRequest;
}
與插入數據庫行有關的代碼是:
<?php
include 'chatroom.config.inc.php'; // the database file
$message_username = $_POST['username'];
$message_content = $_POST['message'];
if ($message_username == "Username: Once entered, you don't have to enter again" || $message_username == "") {
$message_username = "Guest";
}
if ($message_content == "Message:" || $message_content == "") {}
else {
$users->post_message($message_username, $message_content); // insert database row using PDO query
}
?>
誰能提供我要去哪里的線索?
該代碼對我來說看起來不錯,您的PHP代碼正在將數據插入DB中,但沒有返回任何文本或值。
為了在客戶端(即成功完成ajax請求)檢索值,您將必須將數據發送到客戶端。
嘗試使用php的echo函數並返回文本/值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.