我只想在这里检查一下 - 您是否必须在PHP中回显值以通过(jQuery)XHR检索它们?
例如
PHP :
public function processRequest() {
//intercept AJAX requests
if (!empty($_GET)) {
if (isset($_GET['xhr'])) {
if ($_GET['xhr'] == true) {
//process AJAX
//call relevant method
echo json_encode(array('key' => 'value'));
return;
}
}
}
//else proceed with regular output
$this->render();
}
的jQuery :
function doAjax(){
$.ajax({
url: "index.php?xhr=true",
cache: false,
dataType: 'json',
success: function(data){
console.log(data);
}
});
}
这将使用适当的值在Firebug控制台中记录json对象。 如果我尝试返回值而不是回显,我会得到nada。
答案 0 :(得分:4)
他们必须回应在响应中,所以是的,他们必须在那里让jQuery看到它们......否则浏览器得到的响应将没有内容。
作为旁注,如果你想要的是检查它是否是来自jQuery的it already adds this header with every request的AJAX请求,你可以检查X-Requested-With: XmlHttpRequest
标题,例如:
if($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest'){
答案 1 :(得分:0)
返回不会执行任何操作,因为您不在函数中,而是在单独的文件中。返回将优雅地停止执行。
您需要回显/打印javascript数据,以便在执行其http请求时读取它。它就像你拿走那个网址并在你的浏览器中打开它一样。
答案 2 :(得分:0)
响应将由呈现的页面组成,因此当您返回它时,它会在PHP文件中返回它,页面的实际呈现永远不会看到该值,因此jQuery也不会。
基本上,如果查看源代码,jQuery AJAX命令将显示浏览器将看到的内容。