angular Attempting to change configurable attribute of unconfigurable property

f45qwnt8  于 5个月前  发布在  Angular
关注(0)|答案(4)|浏览(97)

在Cordova应用中使用iOS的WKWebView时,遇到了这个异常:
TypeError: 尝试更改不可配置属性的可配置属性。
异常发生在以下位置:
https://github.com/angular/zone.js/blob/afa1363eb9ae3be506442311a18723a112f9ef8b/lib/browser/property-descriptor.ts#L362
奇怪的是,这个异常偶尔会发生,而且我不知道如何重现它。我猜想还有其他代码覆盖了onreadystatechange属性的XMLHttpRequest.prototype。至少我可以确定,当错误发生时,该属性不可配置。为了证明这一点,我在那一行设置了一个断点,并检索了xhrDesc的值。
我的建议是检查属性是否可配置,或者/以及将覆盖代码 Package 在try/catch中。如果不是或者抛出异常,canPatchViaPropertyDescriptor可以返回false

wlp8pajw

wlp8pajw1#

谢谢,我会检查的。

plupiseo

plupiseo2#

只想补充一下,我们现在也遇到了这个问题。
使用Cordova w/ WKWebView & 得到:
TypeError: Attempting to change configurable attribute of unconfigurable property.
我们正在使用Angular 7。我不确定这是否是一个影响所有在Cordova/WKWebView中运行的Angular 7应用程序的问题,或者我们的配置中包含了某种冲突的polyfill。

puruo6ea

puruo6ea3#

嘿,@fishbone1 ,我成功追踪到我们的问题是由于使用了https://github.com/oracle/cordova-plugin-wkwebview-file-xhr插件导致的。在切换到WKWebView时,我们发现了一些CORS问题,而这个插件帮助我们绕过了这些问题。

该插件的polyfill重新定义了XMLHttpRequest的onreadystatechange属性,但没有指定configurable:true。稍后,Zones.js尝试配置该属性(在你提供的代码中),导致一切崩溃。

yc0p9oo0

yc0p9oo04#

我得到了相同的结果。

相关问题