0

我正在为 Office 编写一个应用程序,我计划使用 AJAX 将内容从外部网站动态加载到 Office 应用程序。我有以下JS函数。当执行达到a.open()功能时,它会显示错误:

 Unhandled exception at line 31, column 21 in https://localhost:44304/App/Home/Home.js

 0x80070005 - JavaScript runtime error: Access is denied.

-

function getDataFromSelection() {
    Office.context.document.getSelectedDataAsync(Office.CoercionType.Text,
        function (result) {
            if (result.status === Office.AsyncResultStatus.Succeeded) {

                var a = new XMLHttpRequest();
                a.onreadystatechange = function () {
                    if (a.readyState == 4 && a.status == 200) {
                        var jSONstr = a.responseText;
                        var obj = jQuery.parseJSON(jSONstr);
                        showSearch(obj);
                    }
                };

                a.open("GET", "http://some.external.site/page.php?query=" + result.value, true); //This has got the error
                a.send();
            }
            else {
                app.showNotification('Damn!:', result.error.message);
            }
        }
    );
}

Office 应用程序不支持 AJAX 吗?我怎样才能以另一种(工作)方式做确切的事情?

PS:我在 Win8 上使用 Visual Studio 2012

4

1 回答 1

1

触发错误是因为您尝试通过 ajax 发出跨站点请求。

浏览器很少允许此类请求,因此您应该找到一种解决方法,向处理服务器到服务器通信的服务器端脚本发出 JSONP 请求或 ajax 请求。

于 2013-04-27T17:57:34.677 回答