ajax提交使用POST方法提交的参数是get的形式?

$.ajax({
    //几个参数需要注意一下
        type: "POST",//方法类型
        contentType: "application/json",
        dataType: "json",//预期服务器返回的数据类型
        url: "" ,//url
        data: {
          "phone": $.trim($("[name='phone']").val()),
          "type": "Register",
          "sendSms": true
        },
        success: function (result) {
            console.log(result);//打印服务端返回的数据(调试用)
            if (result.resultCode == 200) {
                alert("SUCCESS");
            }
        },
        error : function() {
            alert("异常!");
        }
    });

image
为什么参数像get提交的一样,后端获取不到数据?

阅读 3.2k
3 个回答
 data:JSON.stringify({
  "phone": $.trim($("[name='phone']").val()),
  "type": "Register",
  "sendSms": true
}),

jQuery 不会自动处理请求参数转json的,即使你写了json的contentType,要么你自己转JSON字符串,要么用默认序列化的方式

{
  contentType: "application/json",
  data: JSON.stringify({ phone })
}
// 或
{
  data: { phone }
}
// 这一句删了试试
contentType: "application/json"

// 或者改成
contentType: "x-www-form-urlencoded"
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题