[英]Getting an ajax post data in php
$.ajax({
url: '/gateway/',
type: 'POST',
data: {test : 'test'},
dataType: 'json',
}).done(function(){
console.log('done');
});
上面是我的AJAX帖子,下面是我的PHP:
var_dump($_POST['test']);
die();
问题是,这无法正常工作(我得到NULL值)-为什么?
我知道我的电话即将转到PHP代码,因为我可以转储任何旧字符串:
var_dump('hello');
die();
我要去哪里错了?
只需删除此dataType: 'json'
。 您的$_POST['test']
是一个字符串值,而不是JSON字符串。
您要测试的POST值不是JSON,而是一个字符串。
去除
dataType: 'json',
它应该工作。
当您在AJAX请求中设置dataType: "json"
,这意味着应将预期的响应解析为json(而不是其他人所说的传出POST)。
这是一个精简的复制和粘贴示例,供您继续使用。 希望能帮助到你
<?php
//is it POST
if($_SERVER['REQUEST_METHOD'] == 'POST'){
// set var
$test = isset($_POST['test']) ? $_POST['test'] : null;
//do some logic - skip that bit ;p
//was the request from AJAX, ok send back json
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
//always a good idea
header('Content-Type: application/json');
//json encode, notice the ABC, then look at the jQuery below
die(json_encode(
array('ABC' => 'From Response: '.$test)
));
}
}
?>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
jQuery(document).ready(function(){
var ajax = $.ajax({
url: "./",
type: "POST",
data: {test : 'test'},
dataType: "json"
});
ajax.done(function(data) {
$("#result").html(data.ABC); /* << See data is an object */
});
ajax.fail(function(xhr, status, error) {
$("#result").html(xhr.responseText);
});
});
</script>
<span id="result"></span>
我不确定这是否是问题,但是.done
已过时。 此外,正如其他人提到的那样,您正在从服务器请求json而不接收json。
您的代码应如下所示
$.ajax({
url: '/gateway/',
type: 'POST',
data: {test : 'test'},
success: function () {console.log('done');}
});
我想向您推荐我的代码。 并请检查以下几点。
../
访问它,最重要的是提供文件扩展名。 像“ gateway.php” 并编写成功和失败功能。 它可以更好地了解正在发生的事情。
$.ajax({ type:'POST', url:'gateway', data:{test:'test'}, success: function(data){ if(data) { alert(data); } }, failure: function(){ alert(failed); } }) ;
评论是否有任何错误
希望能帮助到你 :)。 如果这样的话,别忘了绿色:P
或更改PHP代码
header('Content-Type: application/json');
exit(json_encode(array('data' => 'Bla bla bla')));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.