Post 数据到服务器使用 Excel 插件

Post data to server using Excel Add-in

该项目是一个 Excel Web 插件。

我目前 运行 Visual Studio 上的加载项处于调试模式,并且想 post 将数据发送到服务器。数据通过 ajax 调用发送。

发布数据代码:

 Excel.run(function (context) {
        let workbook = context.workbook;
        let worksheets = workbook.worksheets;
        let Sheet = worksheets.getItem("SheetName");
        var tableRange = Sheet.getRange("Data");
        tableRange.load("values");
        return context.sync().then(function () {
        $.ajax({
                contentType: 'application/json; charset=utf-8',
                dataType: 'text',
                type: 'POST',
                url: 'DocFile/Post',
                crossDomain: true,
                data: JSON.stringify({
                    file:tableRange.values
                })
                ,
                success: function (r) {
                    console.log(r);
                    alert("Successfully saved Home office assumptions for Space");
                },
                failure: function (r) {
                    alert(r);
                }
            });

加载项运行时弹出如下错误信息: Error Message

从这个错误消息来看,您似乎正在将数据发布到跨域服务器。 在 Excel JS 解决方案中,我们有由浏览器强制执行的同源策略,以防止从一个域加载的脚本从另一个域获取或操作网页的属性。这意味着,默认情况下,请求的域 URL 必须与当前网页的域相同。

可以在 https://docs.microsoft.com/en-us/office/dev/add-ins/develop/addressing-same-origin-policy-limitations

找到该文档

一个可能的解决方案是将这个新的 appdomain 添加到清单中,您可以在此处找到文档 https://docs.microsoft.com/en-us/office/dev/add-ins/reference/manifest/appdomains