如何将值从PHP发送到jQuery:echo还是return?

我只想在这里检查一下 – 你是否必须在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。

他们必须回应在响应中,所以是的,他们必须在那里让jQuery看到它们……否则浏览器获得的响应将没有内容。

作为旁注,您可以检查X-Requested-With: XmlHttpRequest标头,如果您只想检查它是否是来自jQuery的AJAX请求, 它已经为每个请求添加了此标头 ,例如:

 if($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest'){ 

返回将不会执行任何操作,因为您不在函数中,而是在单独的文件中。 返回将优雅地停止执行。

您需要回显/打印javascript的数据,以便在执行其http请求时读取它。 它就像你拿走那个url并在你的浏览器中打开它一样。

响应将由呈现的页面组成,因此当您返回它时,它会在PHP文件中返回它,页面的实际呈现永远不会看到该值,因此jQuery也不会。

从本质上讲,jQuery AJAX命令将查看浏览器在查看源代码时将看到的内容。