阻止React JS覆盖脚本



我对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

这个问题需要由这个代码所属的一方来解决——网站所有者、另一个浏览器扩展、你正在使用的第三方组件等。

最新更新