我有应用洞察力在我的应用网站上启用,然后有一个第三方脚本加载与自己的网站沟通。
问题在于,app洞察了全局XMLHttpRequest对象,当该脚本试图从自己的站点获取数据时,它会得到CORS错误,因为它实际上是从应用程序洞察力(不同的来源)发送的。
我怎样才能解决这个问题?我能告诉应用程序洞察力不要测试XMLHttpRequest吗?(我真的不需要它)
为了澄清这一问题:
<body>
...
<script>
// this instrumetns XMLHttpRequest
const appInsights = new ApplicationInsights({
config: {
instrumentationKey: SOM_APPINSIGHTS_INSTRUMENTATIONKEY
}
});
</script>
</body>
// this fails because XMLHttpRequest is instrumented (CORS error)
<script><script type="text/javascript" src="https://js.hs-scripts.com/XXX.js"></script>
</body>错误(在最新的Chrome浏览器中):
Access to XMLHttpRequest at
'https://api.hubspot.com/livechat-public/v1/message/public?portalId=XXXXXXXX'
from origin 'http://localhost:3333' has been blocked by CORS policy:
Request header field traceparent is not allowed by Access-Control-Allow-Headers in preflight response.
(anonymous) @ InstrumentHooks.js:97 <<<<<< this is app insights code
f @ fetchWidgetData.js:78 <<< this is third-party javascript
loadWidget @ WidgetShell.js:498
(anonymous) @ throttle.js:21
start @ WidgetShell.js:581
v @ startOnceReady.js:55
I @ startOnceReady.js:96
(anonymous) @ startOnceReady.js:111
captureErrors @ ErrorLogger.js:119
b @ startOnceReady.js:110
(anonymous) @ start.js:18
s @ bootstrap:19
(anonymous) @ bootstrap:97
(anonymous) @ conversations-embed.js:1发布于 2022-10-09 12:25:55
得到了解决方案这里
基本上,问题是由应用程序洞察力发送的traceparent头造成的。对于应用洞察力配置中的特定第三方站点,有一个选项可以禁用,correlationHeaderExcludedDomains选项做到了这一点:
const insights = new ApplicationInsights({
config: {
instrumentationKey: ...
correlationHeaderExcludedDomains: ['js.hs-scripts.com', 'api.hubspot.com'],https://stackoverflow.com/questions/73791189
复制相似问题