fetch() 部分在 Office 加载项中工作

问题描述 投票:0回答:1

我正在构建一个 Office 插件,专门用于 Word 中。我还有一个使用 Django 构建的 API,它接受并接收数据作为“formData”。现在,在我的办公室加载项中,我编写了一个带有自定义获取请求的函数:

 const response = await fetch('http://127.0.0.1:8000/api/v1/my-upload-api', {
      method: 'POST',
      body: formData
  });

当代码运行时,API 被调用,我的另一个后端也可以正常运行并上传文件,但在加载项代码中,它会抛出

TypeError: Failed to fetch
。我尝试在获取请求后添加调试器和日志语句,但它抛出 TypeError (lineNumber: 30),因此它直接进入 catch 块。我也尝试通过这样的承诺来处理响应:

const response = await fetch('http://127.0.0.1:8000/api/v1/upload-contracts', {
      method: 'POST',
      body: formData
  }).then((response) =>{
    response.json().then(result => {
      console.log(result);
      return result;
    });  
  });

但这也不起作用。我真的需要一些帮助。 谢谢!

typescript office-js office-addins add-in
1个回答
1
投票

我发现,如果您使用 Yoman 的 yo office 和 TypeScript 支持生成了项目模板,那么默认情况下,初始化的项目会尝试通过

localhost:3000
访问
https
。因此,它无法找到已编译的 JavaScript 文件。

解决方案 在开发模式下本地运行插件时,将所有

https://localhost:3000
调用替换为
http://localhost:3000
。您还可以使用环境变量在整个项目中动态设置
https
。这是解决问题的一种古怪方法,但效果完美。

© www.soinside.com 2019 - 2024. All rights reserved.