发生错误的地方:
我正在通过ajax请求将数据发送到php。在那里,它检查接收到一个空的或非空的GET,并且对于每个选项,它都返回不同的答案。问题是在php页面上答案是正确的,但是当它返回到发送它的页面时,答案就变得不正确。
当GET为空时,php返回'empty'(如预期),但是ajax打印'not empty'(预期为'empty')] >>
我绝对不明白为什么会这样。我尝试用exit和return返回各种
AJAX:
$(".rate_form .submit").click(function() {
var rate_form = $(this).parents().find('.rate_form');
var rate = rate_form.serialize();
$.ajax({
type: "GET",
url: "rate.php",
data: {
"rate": rate
},
cache: false,
success: function(response) {
console.log(response);
}
});
return false;
});
RATE.PHP:
header("Content-type: text/html; charset=utf-8"); if(empty($_GET)){ exit('empty'); }elseif (!empty($_GET)){ exit('not empty'); }
UPD:我尝试了@Barmar建议
不幸的是,这与问题无关。我完全摆脱了“缓存”,但是情况没有改变。我什至尝试只检查empty()
的一个$ _GET参数(也尝试isset()
)。
结果与之前相同:
在rate.php中,答案是正确的(取决于请求是否为空或带有参数),并且在表单的页面上始终只有一个答案:空”。而且,即使是陌生人,如果返回$ _GET数组,那么它也会正确返回(当$ _GET不为空时,它将返回“空”和非空数组)返回“空”和非空数组if (!empty($_GET['rating'])){ print_r($_GET); exit('not empty'); } else { print_r($_GET); exit("empty"); }
页面上的控制台答案
Array
(
[rate] => rating=1
)
empty
发生错误:我正在通过ajax请求将数据发送到php。在那里,它检查接收到一个空的或非空的GET,并且对于每个选项,它都返回不同的答案。 ...