当我尝试解释来自我的 Apache 服务器的 AJAX 响应时,Jquery 会打印一个语法错误。该文件以 php 格式打印,Smarty 作为模板引擎。
这是“错误”的一个简单的最小工作示例(来自铬 javascript 终端)
> $.post('newtasklist',{name: 'hello'},function(ans){console.log($(ans))})
XHR finished loading: "http://localhost/narasimha/newtasklist". jquery-1.9.1.js:8526
Uncaught Error: Syntax error, unrecognized expression: <li><a><input type="hidden" class="listid" value="4" />hello(0)</a></li>
如您所见,这在我的 HTML 标记中不是问题。我认为它可能是一个 BOM(我在 gedit 3.6.2 下工作),所以我有bomstrip-files
我的项目目录的每个 .php 和 .tpl 文件......但它没有改变任何东西。
此外,我已经添加ans.replace(/^\uFEFF/, '')
到我的答案脚本中,但它也不起作用。
有没有人考虑另一种解决方案?
编辑: 我试图计算答案中的字节数。它告诉我“75”,比实际字符串多 2 个字节。但我不知道这种差异的根源。
> $.post('newtasklist',{name: 'salut'},function(ans){
console.log('ans : ', ans);
console.log('n_ans : ', ans.length);})
ans :
<li><a><input type="hidden" class="listid" value="13" />salut(0)</a></li>
n_ans : 75
> '<li><a><input type="hidden" class="listid" value="13" />salut(0)</a></li>'
.length
73