Firefox 控制台報錯 SyntaxError: expected expression, got '<',JS 代碼 eval(xhr.responseText) 執行失敗。
服務端返回的是 HTML 片段(以 < 開頭),而非合法 JavaScript 表達式。eval 只能執行 JS 代碼,不能直接執行 HTML。
// 控制器
return json(['status'=>1, 'html'=>'<div>...</div>']);
// JS
var resp = JSON.parse(xhr.responseText);
document.getElementById('container').innerHTML = resp.html;
eval('(' + xhr.responseText + ')'); // 將語句轉為表達式
document.getElementById('container').innerHTML = xhr.responseText;
徹底拋棄 eval,統一採用 JSON 數據交換 + 模板渲染(如 template.js、Vue、React),安全且可維護。