javascript - 带有 auth header 的 Office App Ajax,连接到启用了 cors 的安全 Web api 2 后端

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

我正在为 Office 构建内容面板应用。

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

我构建了一个测试脚本,在端点上触发一个简单的获取,我可以让它在 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;
    }
});

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

错误:函数正在被命中,数据包含“错误:访问被拒绝。\r\n”

除了确保在应用 list 中授予域名权限之外,我还尝试使用 $.support.cors = true;

有人对还可以尝试什么有任何想法吗?

最佳答案

事实证明,在项目属性中,Office 应用程序默认强制执行 SSL,老实说这很好,但在针对非 SSL 域进行测试时并不理想。

解决这个问题的方法是调整项目设置,如下所示。

Disable SSL for Ajax Cors request in OFfice Apps

关于javascript - 带有 auth header 的 Office App Ajax,连接到启用了 cors 的安全 Web api 2 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24119402/

相关文章:

javascript - 如何防止 shift + tab 聚焦?

javascript - 将经度和纬度保存到数组中 JavaScript Google Maps API EVENT

javascript - php curl使用html下拉选择填充变量

c# - 预检失败时如何通过属性而不是通过 Application_BeginRequest 启用 CORS

javascript - 如何使用 CORS 向多个域验证同一用户的身份?

Angular + NET 核心 "Http failure response for (unknown url): 0 Unknown Error"

javascript - 在 Javascript 中传递变量

java - 我可以在 anchor 标记中使用 include 指令吗?

c# - 使用ajax将值传递给 Controller

javascript - 如果找到没有字符串匹配则执行代码