我有这个 axios 代码用于发布表单数据
更新设置:function(){
let formData = new FormData();
formData.append('email', this.email);
formData.append('country', this.country);
formData.append('names', this.names);
formData.append('language', this.language);
formData.append('userid', this.$store.state.userid);
formData.append('telephone', this.telephone);
axios.post('https://example.com/users/update_profile',
formData,
{
headers: {
'Content-Type': 'multipart/form-data'
}
}
).then(function(response){
console.log(response.data);
})
.catch(function(){
console.log('FAILURE!!');
});
},
提交时,我正在执行该功能。在服务器端我有这个代码
public function update_profile(){
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");
header('Content-Type: application/json');
$obj = json_decode(file_get_contents("php://input"), TRUE);
$currency = $obj['currency'];
$email = $obj['email'];
$country = $obj['country'];
$names = $obj['names'];
$language = $obj['language'];
$userid = $obj['userid'];
$telephone = $obj['telephone';
我的html
<div class="form-group">
<label for="exampleInputEmail1">Your Names</label>
<input type="text" class="form-control" v-model="names" placeholder="Names">
<small id="emailHelp" class="form-text text-muted"></small>
</div>
当我返回 $obj
的值时,它返回一个空白,我不知道为什么我没有收到应有的发布的表单数据。如何在服务器端接收数据?我已经确认表单数据正在发布。
答案 0 :(得分:1)
我看过几十篇文章和答案,指出这是正确的方法
$obj = json_decode(file_get_contents("php://input"), TRUE);
然后
$obj['email'];
根本不起作用。
简单地说,$_POST['email'];
就可以了