带有auth标头的Office App Ajax,连接到启用了cors的安全web api 2后端

时间:2014-06-09 11:31:35

标签: javascript ajax cors asp.net-web-api2 office-app

我正在为Office构建一个内容面板应用程序。

部分内容需要针对服务器验证帐户。我在我的网络api 2控制器上实现了自己的AuthorizationFilterAttribute,并在我的网络API注册时调用了config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

我构建了一个测试脚本,可以在端点触发一个简单的get,我可以让它在chrome和ie中工作。

var token = btoa(username + ':' + password);

$.ajax({
    url: 'http://www.someendpoint/',
    type: 'GET',
    beforeSend: function (request) {
        request.setRequestHeader("Authorization", "Basic " + token);
    },
    success: function (data) {
        return true;
    },
    error: function (data) {
        return false;
    }
});

问题是它在应用程序中不起作用。

error: function被点击,数据包含“错误:访问被拒绝。\ r \ n”

除了确保域名在App Manifest中获得权限外,我还尝试使用$.support.cors = true;

任何人都有什么想法可以尝试?

1 个答案:

答案 0 :(得分:3)

事实证明,在项目属性中,办公室应用程序默认强制执行SSL,这是诚实的,但在针对非SSL域进行测试时并不理想。

答案是调整项目设置,如下所示。

Disable SSL for Ajax Cors request in OFfice Apps