Apache サーバーからの AJAX 応答を解釈しようとすると、Jquery が構文エラーを出力します。このファイルは、テンプレート エンジンとして Smarty を使用して php で出力されます。
これは、「バグ」の単純な最小限の作業例です(クロム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/, '')
、回答スクリプトに追加しましたが、どちらも機能しません。
誰かが別の解決策を考えていますか?
編集: 回答のバイト数を数えようとしました。実際の文字列よりも 2 バイト多い「75」と表示されます。しかし、私はこの違いの起源を知りません。
> $.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