[英]How to fix 'Uncaught SyntaxError: Unexpected token <'
我有一段以前在 PHP5.6 上工作過的 Javascript 代碼但是,當我升級到 PHP7.2 時,它停止工作並出現以下錯誤:
VM505:2 Uncaught SyntaxError: Unexpected token <
at Function.globalEval (jquery.tools.min.js:49)
at Function.httpData (jquery.tools.min.js:152)
at XMLHttpRequest.x.onreadystatechange (jquery.tools.min.js:149)
globalEval @ jquery.tools.min.js:49
httpData @ jquery.tools.min.js:152
x.onreadystatechange @ jquery.tools.min.js:149
XMLHttpRequest.send (async)
ajax @ jquery.tools.min.js:150
chkpwd @ hw.php:295
onclick @ hw.php:877
我想不通那個錯誤是chkpwd@hw.php 295,但是這個函數實際上在LINE 387。所以,我不知道去哪里查看。
調試和修復它的最佳方法是什么?
function chkpwd() {
var pwd_val = $("#engpassword").val();
$.ajax({
url: 'password.php',
dataType: 'jsonp',
jsonp: 'processData',
data: {
pwd: pwd_val,
callback: 'pwdaction'
},
error: function(xhr) {
alert('Ajax request error!');
$(e.target).attr('disabled', false);
}
});
}
通常它指的是一個響應,而不是一個可解析的 JSON 返回(IE)一個 HTML,其中開始標記以<
如果您正在使用 React 應用程序並且在控制台中看到此錯誤,則可能是由於您的 index.html 文件中缺少腳本標記的“type”屬性。 確保包含 type="text/jsx"。
此外,您嘗試訪問的 URL 不是返回 Javascript 或 JSON 而是 HTML,請為您的腳本標簽的“src”屬性提供正確的路徑,以“/”開頭,后跟 .js 文件的路徑。
我參考了以下鏈接,請看一下,因為我剛剛簡要介紹了本文中的內容: https : //idiallo.com/javascript/uncaught-syntaxerror-unexpected-token#n
PS - 瀏覽文章中的評論部分
在我的情況下(Webpack v.5 + React)它發生在具有第二級或更多嵌套級別頁面的頁面上。 所有資產都使用相對路徑包含,如sct="./index.js"
。 所以對於嵌套頁面變得破碎。
要修復它需要添加<base href="http://yoursitename.com">
如果您使用的是 webpack,則可以添加:
const htmlWebpackPlugin = new HtmlWebpackPlugin({
template: path.resolve(__dirname, 'src', 'index.html'),
title: WebSiteName,
base: isLocal ? 'http://localhost:4008' : 'http://yoursitename.com',
});
這將注入元素<base href="...">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.