我想使用JQuery $ .post()方法ping服务器并获取该服务器的在线状态。 我目前的代码:
JQuery的:
$(window).load(function() {
$.post('php/ping_server.php', { 'domains[]': ["example.com", ..., ...] }, function(status) {
for (var i=0; i < status.length; i++) {
$('.sidebox .onlinestatus').eq(i).addClass(status[i]).text(status[i]);
}
}, "json");
});
PHP:
include('functions.php');
if (isset($_POST["domains"])) {
$status = array();
foreach($_POST["domains"] as $domain) {
$status[] = pingDomain($domain);
}
die(json_encode($status));
}
函数pingDomain()返回“离线”或“在线”,它起作用 我没有在控制台中收到任何错误或警告,但没有任何反应......
有什么问题?
答案 0 :(得分:1)
您可能需要在php中使用正确的标头,例如
include('functions.php');
if (isset($_POST["domains"])) {
$status = array();
foreach($_POST["domains"] as $domain) {
$status[] = pingDomain($domain);
}
header('Content-Type: application/json'); // here
die(json_encode($status));
}
或解析 JS中的响应
$(window).load(function() {
$.post('php/ping_server.php', { 'domains': ["example.com", ..., ...] }, function(status) {
status = JSON.parse(status); // here
for (var i=0; i < status.length; i++) {
$('.sidebox .onlinestatus').eq(i).addClass(status[i]).text(status[i]);
}
}, "json");
});
注意:两者都是因为您已明确指定了预期的数据类型。否则不需要。