我在reactjs.Axios.get中使用Axios Api对我来说工作正常,但是我遇到axios.put问题,当我使用简单对象发送请求时,我会得到正确的响应,但是当我发送请求formdata时,我会得到响应为null。
当我发送带有正常工作的简单对象的请求时:
const data= {ProductName:"Dummy"};
const apiurl = `http://localhost/testapi/index.php/api/products/product`;
axios.put(apiurl, data).then(response => {
console.log(response.data);
});
服务器端:
public function product_post()
{
$data = array();
$data['ProductName'] = $this->post('ProductName');
$this->response(
[
'status' => "ok",
'message' => "Data inserted successfully",
'info' => $data['ProductName']
],
REST_Controller::HTTP_OK
);
}
我得到了“假人”的正确答案
当我使用无法正常工作的Formdata发送请求时:
var data= new FormData();
data.set("ProductName","Dummy");
const apiurl = `http://localhost/testapi/index.php/api/products/product`;
await axios.put(apiurl, data).then(response => {
console.log(response.data);
});
服务器端:
public function product_post()
{
$data = array();
$data['ProductName'] = $this->post('ProductName');
$this->response(
[
'status' => "ok",
'message' => "Data inserted successfully",
'info' => $data['ProductName']
],
REST_Controller::HTTP_OK
);
}
现在我收到的$ data ['ProductName']响应为null。 还有一件事,我也尝试发送带有formdata的文件,但是却为空
请告诉我代码有什么问题。
答案 0 :(得分:0)
您需要使用append方法向FormData添加新键和值
更改
data.set("ProductName","Dummy");
收件人
data.append("ProductName","Dummy");
编辑:
您需要在标题中指定要发送的FormData,因为该内容类型应该是multipart / form-data。尝试以下代码
var data= new FormData();
data.append("ProductName","Dummy");
const config = {
headers: { 'content-type': 'multipart/form-data' }
}
const apiurl = `http://localhost/testapi/index.php/api/products/product`;
await axios.put(apiurl, data, config).then(response => {
console.log(response.data);
});