我正在使用 HTML、CSS 和 jQuery/JavaScript 创建跨平台应用程序。我使用 AJAX 请求从数据库获取数据,以及将数据发布到数据库。我已经让 AJAX 'GET' 请求方法正常工作。这是我的“GET”方法(位于我的 HTML 页面之一的脚本中)。
GET方法
var outputHeader = $('#outputHeader');
var outputDes = $('#outputDes');
$.ajax({
url: '/currentEvent.php',
type: 'GET',
//data: 'json',
datatype: 'jsonp',
jsonp: 'jsoncallback',
timeout: 5000,
success: function (data) {
outputHeader.html("");
outputDes.html("");
for (var i in data) {
outputHeader.append("<h2>" + data[i].Event_Name + "</h2>" + "<p>" + data[i].Event_Date + "</p>" + "<p>" + data[i].Event_Time + "</p>" + "<p>" + data[i].Event_Venue + "</p>" + "<p>" + "Organised by  " + data[i].Event_Organiser + "</p>");
outputDes.append("<center>" + "<img src='" + data[i].Event_Image + "'/>" + "</center>" + "<p>" + data[i].Event_Description + "</p>")
}
},
error: function () {
outputHeader.html('<p>There was an error loading the data.</p>');
outputDes.html('<p>There was an error loading the data.</p>');
},
});
“POST”方法让我感到困扰。这是我的“POST”方法的代码(位于我的 HTML 页面之一的脚本中)。
POST 方法
var urlID = 1;
$.ajax({
url: '/currentEvent.php',
type: 'POST',
data: 'urlID=' + urlID,
datatype: 'text',
success: function (data) {
console.log(data);
},
});
AJAX 请求正在发布到此 .php 页面。
currentEvent.php页面
$eid = $_POST['urlID']];
$query = "SELECT * FROM Event WHERE Event_ID = {$eid}";
$getData = sqlsrv_query( $conn, $query );
if ($getData === false) {
die(print_r(sqlsrv_errors(), true));
}
$records = array();
while($row = sqlsrv_fetch_array($getData, SQLSRV_FETCH_ASSOC))
{
$records[] = $row;
}
//echo json_encode($getData);
echo json_encode($records);
当我运行 HTML 页面(我正在使用服务器)时,它不会将“$eid”设置为 1。我在“GET”之前有“POST”方法,因为我必须将 id 发布到php 页面,以便它可以运行查询并将数据返回给应用程序。结果是“GET”方法中的变量数组未定义。我想发布一张照片,但我不能,因为我是新人。
我已经尝试过其他用户建议的解决方案,但没有成功。在 jQuery 和 JavaScript 开发方面,我是个新手,所以我花了一些时间来理解它。我是不是做错了什么?
最佳答案
据我所知,在发布时,您需要将“content-type”的请求 header 设置为“multipart/form-data”。你可以这样做:
$.ajax({
url: "/currentEvent.php",
type: "POST",
data: 'urlID=' + urlID,
datatype: 'text',
beforeSend: function(xhr) {
xhr.setRequestHeader('content-type', 'multipart/form-data');
},
success: function (data) {
console.log(data);
},
});
希望这有帮助,
真棒01
关于javascript - 使用 jQuery AJAX 请求 - POST 到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32569499/