备注:使用XAMPP
在PHP上,我使用json_encode()
将数据返回给JS / JQuery ajax请求。
来自.js的ajax调用:
$.ajax({url: "/sys/search_rf/functions.php" ,
async: false, // wait for reponse
type: "post",
data: { id: $('#id').val(),
status: $('#status').val(),
token: cToken } ,
success: function(jsonResponse,status){ // POST success
console.log(jsonResponse);
jsonData = JSON.parse(jsonResponse);
[...]
}
在functions.php。
中我require_once()
另一个.php之前一切正常
require_once(dirname(dirname(__FILE__)).'/searches.php'); // -> ../searches.php
输出调试:
除了返回json_encode()
的函数外,所有包含的PHP都不会回显/打印任何内容。
那么,我编辑了searching.php并将其保留(调试目的):
<?php
?>
所以我百分百肯定没有回音,我保持着:
require_once(dirname(dirname(__FILE__)).'/searches.php'); // -> ../searches.php
在functions.php中的,它响应ajax请求。
但错误仍然存在:
SyntaxError: JSON.parse: unexpected character
如果我评论它,就没有错误!
// require_once(dirname(dirname(__FILE__)).'/searches.php'); // -> ../searches.php
我想每当我require_once()
它回应'某事'时。我真的不知道。
我还检查了所有文件的所有EOL /编码。 全部采用UTF-8编码的Unix格式。
这种解决方法可行,但我认为这不是正确的解决方案:
jsonData = JSON.parse( jsonResponse.trim() );
.trim()
答案 0 :(得分:2)
你应该在打开php标签之前删除关闭php标签和所有空格。还要检查文件中是否使用没有BOM的UTF-8。