我正在调用我无法控制的后端服务器。目前它像这样使用 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/