javascript 如何修复'Uncaught SyntaxError:意外的令牌< '

8fq7wneg  于 2023-05-27  发布在  Java
关注(0)|答案(4)|浏览(124)

我有一段Javascript代码,以前在PHP5.6上工作过,但是,当我升级到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,但这个函数实际上在第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);
    }
  }); 
}
bt1cpqcv

bt1cpqcv1#

通常它指的是一个响应,而不是一个可解析的JSON返回(IE)一个HTML,其开始标记以<开始

oyt4ldly

oyt4ldly2#

如果您正在使用React应用程序,并且在控制台中看到此错误,则可能是由于index.html文件中缺少script标签的“type”属性。确保包含type=“text/jsx”。
此外,您试图访问的URL没有返回Javascript或JSON,而是返回HTML,请给予脚本标记的“src”属性的正确路径,以“/”开头,后跟.js文件的路径。
我从下面的链接参考,做看看,因为我刚刚简要介绍了什么是写在这篇文章:https://idiallo.com/javascript/uncaught-syntaxerror-unexpected-token#n
PS -浏览文章中的评论部分

ax6ht2ek

ax6ht2ek3#

在我的情况下(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="...">

x6yk4ghg

x6yk4ghg4#

只需要将`type=“text/jsx”添加到你的index.html公共文件中即可。

<script src="./src/index.js" type="text/jsx"></script>

相关问题