jquery ajax中的属性contentType与request payload的关系

[HtmlCssJs] 2024-04-26 圈点166

摘要:ajax中的属性contentType值的类型主要有2种,对应的看headers中,会有form data或者Request Payload的数据。

jquery 在ajax中的属性contentType值的类型主要有2种,一种是:默认值: "application/x-www-form-urlencoded",另外一种是是"application/json;charset=UTF-8"


1,默认值: "application/x-www-form-urlencoded"的情况下,其发送的是form-data数据形式,即"a=a&b=b",如果用PHP在服务器端接收数据,即可用$_GET/或者是POST接收数据。


2,如果contentType值为"application/json;charset=UTF-8",其实就是用ajax 发送Request Payload的数据形式,可以认为是一个对象或者是数据字符串,如果用PHP做为服务端接收数据,那么在服务器端要用如下代码来接收解析:

$payloads = file_get_contents('php://input');
$pa = json_decode($payloads);


分析:ajax请求后,按F12,在调试中找到指定的与服务器端的连接,然后看headers中,会有form data或者Request Payload的数据。



其实大部分的时候,这种Request Payload的数据形式一般是不需要的,可以说是错误的操作,在这种情况下,低版本的php也会造成服务端报错,提示要将php.ini中的always_populate_raw_post_data = -1。很多时候,我们用的是form data的数据形式,用GET/POST就可以接收数据了,如果数据比较特殊才用json等格式。当报错的时候,说明我们的contentType值可能写错了。


ajax  contenttype  formdata  requestpayload  

感谢反馈,已提交成功,审核后即会显示