angular的post请求处理。

本文总结了在Angular项目中如何处理POST请求,特别是从使用jQuery请求转向Angular自身的请求。重点指出Angular的POST请求默认发送JSON数据,而后台可能期望表单数据。解决方案是将JSON对象转换为表单参数格式,以确保后台能正确接收。
摘要由CSDN通过智能技术生成

angular的post请求处理。

项目angular中使用jQuery请求,想替换为angular自身请求,结果发现后台没法获取參数,所以,查询资料分析一下,做个总结。

首先,angular和jQuery中请求是不同的。如下:

  • jQuery:
    请求contentType是:
application/x-www-form-urlencoded; charset=UTF-8

该类型数据被编码成以 ‘&’ 分隔的键-值对, 同时以 ‘=’ 分隔键和值. 非字母或数字的字符会被百分比编码: 这也就是为什么这种类型不支持二进制数据(应使用 multipart/form-data 代替)。
data参数是处理过的:

// json对象
{
    a : 3, b : 2 }
// 将json对象处理为
"a=3&b=2"
  • Angular:
    请求contentType:
application/json

data参数:

// json对象
{
   a: 3,c: 2}

综上来看,angular提交后台是json,不是表单数据。我们需要把json对象转换为参数拼接,提交后台时就是表单数据了:

/**
   * 将application/json转换为application/x-www-form-urlencoded
   * @param data
   */
  handlerPostParams(data) {
   
    const params = []
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值