我无法让我的AJAX请求工作。我能够从php接收数据,但我无法向其发送数据。
JAVASCRIPT
<script type="text/javascript">
$("#btnSubmit").click(function() {
$.ajax({
type: 'POST',
url: 'checkinfo.php',
data: { address: "37.187.139.123", port: "26618" },
dataType: 'json',
async: true,
success: function(data)
{
alert(data);
}
});
});
PHP
<?php
$SERVER_IP = $_REQUEST['address'];
$SERVER_PORT = $_REQUEST['port'];
$QUERY_PORT = $_REQUEST['port'];
$HEADS = "3D";
$show_max = "unlimited";
$SHOW_FAVICON = "on";
$TITLE = "My fancy Serverpage";
$TITLE_BLOCK_ONE = "General Information";
$TITLE_BLOCK_TWO = "Players";
$ping = json_decode(file_get_contents('http://api.minetools.eu/ping/' . $SERVER_IP . '/' . $SERVER_PORT . ''), true);
$query = json_decode(file_get_contents('http://api.minetools.eu/query/' . $SERVER_IP . '/' . $QUERY_PORT . ''), true);
if(empty($ping['error'])) {
$version = $ping['version']['name'];
$online = $ping['players']['online'];
$max = $ping['players']['max'];
$motd = $ping['description'];
$favicon = $ping['favicon'];
}
if(empty($query['error'])) {
$playerlist = $query['Playerlist'];
}
echo $SERVER_IP;
?>
我尝试设置$ SERVER_IP =“1”;并且在点击我的按钮时成功获得警报“1”,因此位置绝对正确。但数据:在某种程度上不想通过,我不知道为什么。我也尝试使用$ _POST而不是$ _REQUEST。
答案 0 :(得分:0)
如果dataType
为json
,则您的数据必须为json_encode。
die(json_encode($result));
否则,请使用text/html
或其他更适用的内容。您可能会在错误函数中找到PHP响应:
$.ajax({
type: 'POST',
url: 'checkinfo.php',
data: { address: "37.187.139.123", port: "26618" },
dataType: 'json',
async: true,
success: function(data)
{
alert(data);
},
error: function(response) {
console.log(error=response);
}
});
您可以访问JS控制台中的变量error
(F12工具)
答案 1 :(得分:0)
我用这种方式:
...... dataType: "json"
}).done(function(response){
...
所以,&#34; json&#34;你不应该使用逗号(,),你需要将地址和端口放在引号中,如'address': variable, 'port': variable
我希望我能帮到你