簡體   English   中英

如何修復“未捕獲的語法錯誤:意外的令牌<”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM