浏览器解析json报 SyntaxError: Unexpected token { 错误 迅雷插件导致js获取后端返回结果报错

告诉我跳转失败,自己在火狐测试好多次都没问题。

最后发现是在 前端解析 json解析的时候出问题,在火狐没问题,在谷歌就有问题。

正常应该返回这样:

{"attributes":{},"jsonStr":"{\"attributes\":{},\"msg\":\"xxxxxx\",\"success\":xxxxx}","msg":"xxxxx","success":xxxxx}

谷歌的浏览器的返回的json结果会返回这个:

{"attributes":{},"jsonStr":"{\"attributes\":{},\"msg\":\"xxxxxx\",\"success\":xxxxx}","msg":"xxxxx","success":xxxxx}<div class="xl-chrome-ext-bar" id="xl_chrome_ext_{4DB361DE-xxxx-xxxx-B494-639E489D19ED}" style="display: none;">
      <div class="xl-chrome-ext-bar__logo"></div>

      <a id="xl_chrome_ext_download" href="javascript:;" class="xl-chrome-ext-bar__option">下载视频</a>
      <a id="xl_chrome_ext_close" href="javascript:;" class="xl-chrome-ext-bar__close"></a>
    </div>

多出来的div 有个下载视频,全局搜索项目也没有这东西
后来发现谷歌浏览器我安装了迅雷插件,这样:
在这里插入图片描述

网上搜到原因是迅雷插件一旦勾选了“可读取和更改网站数据”会将网站的返回结果进行加工处理,形成他们的快速下载链接,这样的话会导致后端返回的结果的格式发生问题,导致js报错。

所以两种解决办法
1 删除迅雷插件,或者关掉
2 把那个div从字符串中删掉

像这样:

 let dataClean = data.split('<div class')[0]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,当浏览器报错"Uncaught SyntaxError: Unexpected token import"时,可能是由于浏览器不支持ES6的模块导入语法导致的。解决这个问题的方法有两种: 1. 使用Babel进行转译:Babel是一个广泛使用的JavaScript编译器,可以将ES6的代码转换为浏览器可以理解的ES5代码。你可以在项目中配置Babel,以便将ES6的模块导入语法转换为ES5的模块导入语法。具体步骤如下: - 安装Babel相关的依赖: ```shell npm install --save-dev @babel/core @babel/preset-env ``` - 在项目根目录下创建一个`.babelrc`文件,并配置Babel的预设: ```json { "presets": ["@babel/preset-env"] } ``` - 在项目中使用Babel进行转译: ```shell npx babel src --out-dir dist ``` - 在转译后的代码中,ES6的模块导入语法会被转换为ES5的模块导入语法,从而解决"Uncaught SyntaxError: Unexpected token import"的问题。 2. 使用Webpack进行打包:Webpack是一个常用的模块打包工具,可以将多个JavaScript文件打包成一个文件,并且可以对代码进行转译和优化。你可以在Webpack的配置中使用Babel进行转译,以解决浏览器不支持ES6的模块导入语法的问题。具体步骤如下: - 安装Webpack和Babel相关的依赖: ```shell npm install --save-dev webpack webpack-cli babel-loader @babel/core @babel/preset-env ``` - 在项目根目录下创建一个`webpack.config.js`文件,并配置Webpack和Babel的相关配置: ```javascript const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-env'], }, }, }, ], }, }; ``` - 在项目中使用Webpack进行打包: ```shell npx webpack ``` - 打包后的代码会被转译为ES5的模块导入语法,从而解决"Uncaught SyntaxError: Unexpected token import"的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值