【问题标题】:RxJS Observable.ajax post complex object to MVCRxJS Observable.ajax 将复杂对象发布到 MVC
【发布时间】:2018-02-20 18:42:04
【问题描述】:

我在使用 rxjs 可观察 ajax 发布复杂对象时遇到问题。

updateCashDesck():Observable<SomeModel>{
    return Observable.ajax({
        body: {id:5,Stocks:[{WarehouseId:5,WarehouseName:"1235"}]},
        url:this._apiServerUrl,
        method:"POST"
    }).map(r=>{
        return new SomeModel(r.response);
    }).catch((e,r)=>{
        console.log(e);
        return Observable.throw(e);
    });
}

问题是这样的。当 ajax 发送请求时,它将 content-type 设置为:Content-Type:application/x-www-form-urlencoded; charset=UTF-8 并请求数据发布为:

Id:5
Stocks:[object Object]

所以我的 MVC 控制器看不到 Stocks (Stocks: count=0)。

如何将 Observable.ajax 中的 Content-Type 更改为 application/json?

【问题讨论】:

    标签: asp.net-mvc rxjs observable


    【解决方案1】:

    如果您查看实现,您会发现serializeBody 方法也支持application/json

    但是,如果未指定 Content-Typeapplication/x-www-form-urlencoded 就是 the default

    所以你需要明确指定application/json

    Observable.ajax({
        body: { id: 5, Stocks: [{ WarehouseId: 5, WarehouseName: "1235" }] },
        headers: { "Content-Type": "application/json" },
        url:this._apiServerUrl,
        method:"POST"
    })
    

    【讨论】:

      猜你喜欢
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多