javascript - 在 $http post 请求 header 或正文中插入自定义变量

标签 javascript c# angularjs http post

在我的项目中,我已经有了使用 $http.post 插入所需对象的 AngularJS 服务,如下所示:

function insertObject(object, callback) {
        $http.post(apiUrl, object).success(function (data) {

“对象”在相应的 AngularJS Controller 中设置并发送到我的服务,如:

objectServices.insertObject(object, function (data) {

据此,“object”通过$http post请求体发送。我需要的是在此 $http 请求中发送一个附加变量。实际上,这个变量应该是 Controller 工作的 URL(路由)。 我无法更改此对象结构(将新属性附加到它,它将保存 URL 信息等),因为 $http.post(apiUrl, object) 匹配相应的后端 API Controller 方法,该方法完全采用这个对象作为参数(这个对象是实体)。 我试过这样的事情:

声明将保存 URL 信息的变量:

var url = window.location;

并将其附加到 $http.post header ,如:

$http.defaults.headers.common["currentUrl"]= url;  

其中“currentUrl”应该是键,url 是值。

也试过类似的东西:

$http.post(apiUrl, object, headers: { 'currentUrl': url })

在后端,在相应的 API Controller HttpResponseMessage 方法中尝试将其从请求 header 中提取为:

Request.Headers.Single(x => x.Key == "currentUrl").ToString();

但是没有用。拜托,有人可以解释如何在 http post 请求中发送自定义数据并告诉我我的尝试有什么问题吗?

编辑:Request.Header 在后端的内容是:

Content of Request.Header on backend side is:

最佳答案

附加变量时:
$http.defaults.headers.post.currentUrl = url;

调用电话时,您错过了大括号:
$http.post(apiUrl, object, {headers: { 'currentUrl': url }})

关于javascript - 在 $http post 请求 header 或正文中插入自定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34271340/

相关文章:

javascript - 自定义字体未加载 ionic

javascript - 未捕获的类型错误 : Cannot read property 'ca' of null when dragging Google Map

javascript - React/Firebase - 如何确保在重定向之前发生更新?

c# - 如何实现可暂停的 BlockingCollection

javascript - 如何避免由其他事件触发的窗口调整大小多次触发

c# - CDN 路径在 MVC 中的 js 捆绑中不起作用

c# - 泛型问题

javascript - 在 AngularJS 中,如何使用指令创建具有更改变量名称的模板?

javascript - 我的 json 值开箱即用。如何漂亮地打印这些值?

javascript - 将所有共享数据存储在父组件中是错误的吗?