繁体   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