Excel任务窗格加载项,用于显示外部源的内容

时间:2016-02-08 18:35:23

标签: excel office-addins customtaskpane

我正在尝试构建一个Excel / Word任务窗格加载项,该加载项应显示来自我们网站的内容。内容/数据以XML格式传递。

我试图做的是:

Office.initialize = function (reason) {
    $(document).ready(function () {
        app.initialize();

        $.support.cors = true;

        var data = '';

        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: 'http://addons.mysite.com/excel-taskpane-data.php',
            data: data,
            dataType: "json",
            success: onQuerySuccess,
            error: onQueryError
        });

        function onQuerySuccess(res, statusText) {
            console.log('success!!' + res.statusText);
        }
        function onQueryError(res, statusText){
            console.log('failed!!' + res.statusText);
        }

  });

};

正如您从上面的代码中可以理解的那样,我只是检查是否可以与外部源建立连接,但我在控制台中收到“拒绝访问”。

我不确定如何从外部来源请求数据以及是否可以提供数据?

请帮忙

2 个答案:

答案 0 :(得分:1)

您提到'外部',所以我打赌 http://addons.mysite.com/ 不是为您的网络加载项提供服务的域名。 为了使它工作,你必须检查几件事。

  1. 使用Https服务。正如Michael所写,请确保使用https。大多数服务器阻止Mixed content(混合使用http和https),Office Web加载项只能通过https提供。
  2. 让你的PHP web api支持CORS。 我不是PHP专家,所以这里是small link
  3. 尝试将https://addons.mysite.com指定为AppDomain 沙盒iFrame仅允许在同一域(您用于为web-addin提供服务的域)上的请求和导航。但是您可以指定一些例外see here。它适用于导航,我不确定它是否适用于XHR ......
  4. 如果步骤3不起作用,请尝试使用此处所述的JSON / P技术 JSON/P with Office add-ins

答案 1 :(得分:0)

是的,您可以从Office Web加载项(例如Excel / Word任务窗格)发出Ajax HTTP请求。它们的工作方式与普通网页完全相同,但我们还要求使用" https"而不是" http"访问端点。

如果没有关于您正在呼叫的实际端点的信息,我无法确定您的具体问题的原因。首先在普通网页上试用您的代码,然后使用网络浏览器正常访问它。一旦你有了工作,然后指向页面的加载项。这应该可以解决您的问题,但是如果您仍然遇到问题,那么完全相同的代码在普通浏览器中工作并且加载项失败,请告诉我们。