You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将返回text/html类型的外部资源作为JavaScript文件加载执行?

问题原因

浏览器出于标准安全限制,当script标签请求的资源返回Content-Type为text/html时,会直接拒绝将其作为JavaScript执行,无法通过修改原生script标签属性直接绕过该限制。

可行解决方案
  • 优先调整服务端配置:这是最合规的解决方案,联系对应资源的服务提供方,将https://other-domain.com/AgencySystem/chat/js接口的响应头Content-Type修改为application/javascript或text/javascript,调整完成后原有script标签即可正常加载执行,不需要修改前端代码。
  • 前端手动请求后执行:如果无法修改服务端配置,且确认该接口返回的内容本质是合法JS代码、只是响应头配置错误,可以通过fetch请求资源后手动执行:
    fetch('https://other-domain.com/AgencySystem/chat/js')
      .then(res => res.text())
      .then(jsContent => {
        // 方案1:直接eval执行
        eval(jsContent);
        // 方案2:创建script标签注入内容执行,效果与eval一致
        // const script = document.createElement('script')
        // script.textContent = jsContent
        // document.head.appendChild(script)
      })
    

    注意:该方案要求目标接口配置了跨域规则允许你的站点访问,否则会被CORS策略拦截。同时手动执行外部来源的代码存在极高的XSS安全风险,必须确认该资源完全可信再使用该方案。

  • 搭建代理服务中转:如果以上两种方案都不可行,可以在自己的业务服务端新增代理接口,由服务端请求目标JS资源,再将资源内容以application/javascript的正确响应头返回给前端,前端直接请求自己的代理接口即可正常加载。

内容的提问来源于stack exchange,提问作者Jamviet.com

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:06:03