1

该项目是一个 Excel Web 加载项。

我目前正在调试模式下在 Visual Studio 上运行加载项,并希望将数据发布到服务器。数据通过 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);
                }
            });

运行加载项时弹出以下错误消息: 错误消息

4

1 回答 1

0

从这个错误消息看来,您正在将数据发布到跨域服务器。在 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

于 2020-04-14T02:59:27.820 回答