我对JavaScript没有那么多经验,但我对导航和编写自己的代码足够熟悉。
我花了很多时间试图弄清楚我在HTTP请求方面遇到的一个问题,但最近才意识到可能是其他特定脚本导致了这个问题。
看起来它可能是React JS
我对此并不熟悉。(我确实查了一下,并搜索了很多没有冲突的选项(
基本上,从我执行"XMLHttpRequest.protype.open"来监视传入的HTTP请求的那一刻起,我的所有脚本似乎都在通过一个React JS文件
我假设是这样的,因为我在浏览器控制台中记录脚本的步骤和结果,从我运行XMLHttpRequest.prototype.的那一刻起,它们都被归因于"commons-##########.js">
我在commons-##########.js文件的标题中看到了这一点:
/** @license React v16.4.1
* react-dom.production.min.js
*
* Copyright (c) 2013-present, Facebook, Inc.
问题是,它似乎影响了我自己的脚本正常运行。
有人知道为什么会发生这种情况,以及如何解决吗?我希望我的JS脚本在没有React JS干扰的情况下运行。
(这不是我自己的网站,而是我经常用于商业的网站。修改是为了帮助我,没有恶意。(
谢谢。
请注意,我知道我突出显示的注释部分不会影响我的代码。我这么说只是为了解释为什么我认为是React JS脚本导致了这个问题。
这就是控制台中的实际错误(一部分(:
Uncaught SyntaxError: Unexpected token o in JSON at position 1
at JSON.parse (<anonymous>)
at XMLHttpRequest.<anonymous> (<anonymous>:122:29)
at XMLHttpRequest.a (commons-9702d5b….js:34)
(anonymous) @ VM14804:122
a @ commons-9702d5b….js:34
XMLHttpRequest.send (async)
XMLHttpRequest.send @ VM14804:70
(anonymous) @ commons-9702d5b….js:34
(anonymous) @ commons-9702d5b….js:34
我尝试了很多方法,但我看不出为什么我不能用JSON解析响应或做很多其他事情有任何问题。那个代码的某些内容正在干扰我自己的代码。
JS脚本是一个很长的缩小文件,因此很难确定代码中唯一有问题的部分。
我确信问题不在React。commons-#.js
文件是将您的脚本与您正在使用的任何第三方库(如React(捆绑到一个文件中,以便从web服务器高效加载的结果——这是标准做法,不太可能引起任何问题。您在文件顶部看到的/** @license React v16.4.1
注释只是因为绑定过程已配置为在输出中保留许可证信息。
问题是由JSON响应引起的,该响应以错误的形式从服务器接收或转换不正确。
JSON中位于位置1的意外令牌o
error表示[object ...]
字符串(对象强制为字符串的结果(已传递给JSON.parse
。不知道这个错误是从哪里来的XHR请求可以在devtools网络选项卡中检查,以确定问题是否由错误响应引起,因此可以向API所有者报告。
问题不是React造成的。React本身不能做任何类似的事情,它是UI库。它没有以任何方式使用XMLHttpRequest
。该错误是由同时使用React和XHR的某段代码引起的。它可能可以在堆栈的这一部分进行调试:
at XMLHttpRequest.<anonymous> (<anonymous>:122:29)
at XMLHttpRequest.a (commons-9702d5b….js:34)
(anonymous) @ VM14804:122
这个问题需要由这个代码所属的一方来解决——网站所有者、另一个浏览器扩展、你正在使用的第三方组件等。