PHP在rest路由中,PHP无法接收PUT方法提交的表单数据,所以put方法中的数据需要以json格式提交
ajax示例
$.ajax({
type: 'PUT',
url: "/links/3",
contentType: "application/json",//如果想以json格式把数据提交到后台的话,这个必须有,否则只会当做表单提交
data: JSON.stringify({"name":"baidu","link":"https://www.baidu.com"}),//JSON.stringify()必须有,否则只会当做表单的格式提交
dataType: "json",//期待返回的数据类型
success: function(data){
alert("success:"+data);
},
error:function(data){
alert("error"+data);
}
});
PHP接收代码
$rawData = file_get_contents("php://input");
$data = json_decode($rawData,true);
- php://input 是个可以访问请求的原始数据的只读流。
- POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。 而且,这样的情况下 $HTTP_RAW_POST_DATA 默认没有填充, 比激活 always_populate_raw_post_data 潜在需要更少的内存。
- enctype="multipart/form-data" 的时候 php://input 是无效的。