javascript - 使用 AngularJS,我不想设置全局 $http.defaults.headers.common。我可以在每次调用 $resource 时发送我的自定义 header 吗?

标签 javascript angularjs http-post angularjs-resource angularjs-http

我正在调用我无法控制的后端服务器。目前它像这样使用 jQuery ajax:

return $.ajax({
    type: "POST",
    url: "/api/cases/store",
    contentType: "application/json",
    data: JSON.stringify(parameters),
    headers: { "Authorization": cred } : {}
}) // ... etc.

我想将它转换为使用 $resource 服务,并让它正常工作

$http.defaults.headers.common['Authorization'] = cred;
return $resource('/api/cases/store').save();

唯一的问题是我必须使用授权凭据设置全局 $http 服务默认值。

我看到您应该能够通过 $http 调用传递自定义 header ,现在通过 $resource 调用传递自定义 header ,但我不能在我的案例中找不到任何关于如何做到这一点的例子(使用 POST)。

我在 AngularJS 文档中也找不到任何相关内容。你们是怎么弄清楚这些东西的?文档太糟糕了!

最佳答案

取而代之的是:

$http.defaults.headers.common['Authorization'] = cred;
return $resource('/api/cases/store').save();

这样做:

return $resource('/api/cases/store', {}, {
    save: {
        method: 'POST',
        headers: { 'Authorization': cred }
    }
}).save();

请注意,您必须使用“保存”作为操作,即第三个参数中的第一个键。无法测试它,所以请告诉我它是否有效。

我同意。文档没有谈论它。查看 angular-resource.js 中 $resource 源代码中的 DEFAULT_ACTIONS 列表

关于javascript - 使用 AngularJS,我不想设置全局 $http.defaults.headers.common。我可以在每次调用 $resource 时发送我的自定义 header 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22750366/

相关文章:

javascript - 使用正则表达式获取字符串和数字

javascript - Angular UI 路由器 : ui-sref-active on child element

java - JAVA 中带有 JSON 字符串的 HTTP POST 请求

PHP 计数 JSON 数组

asp.net-mvc-3 - 从 3rd 方站点发布到我的 ASP.NET MVC 应用程序

javascript - DateTimePicker - 添加给定时间段内的天数

Javascript过滤两个数组

javascript - 将 vars 中的字符串放在一起并将它们放入输入中的函数不起作用

angularjs - 设置范围值点击 Angular ?

angularjs - 删除 Angular 图表左侧和右侧的额外空白