Axios DELETE请求正文被发送为空

时间:2019-05-31 07:44:58

标签: php ajax axios

我正在尝试向我的PHP / Codeigniter api发送删除请求。从NativeScript-Vue前端发送。

export interface IQuestionnaire {
  DataProcessingID: string;
  Qestions :  Array<Iquestion>
}
interface Iquestion{
        SecurityControl :  string,
        securityGoal: string[],
}

在PHP方面,我具有此功能来处理JSON数据:

 IQuestions ={} as IQuestionnaire;

“标识符”只是一个字符串数组。

$ stream_clean变量以空字符串而不是JSON字符串的形式出现。

我不得不说,Axios文档声明以下内容有点奇怪:

  

// async deleteBackedupImages(identifiers) { console.log(identifiers); try { var { data } = await axios({ url: this.apiUrl + "/images?XDEBUG_SESSION_START=dsadsad", method: "delete", data:{ identifiers }, headers: { "X-Requested-With": "XMLHttpRequest","Content-Type": "application/json" } }); return data; } catch (error) { throw error; } } 是要作为请求正文发送的数据//仅   适用于请求方法“ PUT”,“ POST”和“ PATCH”

我在各种帖子中都看到,实际上可以通过删除请求发送数据对象

我的代码可能是什么问题?

2 个答案:

答案 0 :(得分:0)

使用参数而不是正文来通过Axios发送DELETE请求:

var { data } = await axios({
   url: this.apiUrl + "/images?XDEBUG_SESSION_START=dsadsad",
   method: "delete",
   params:{
      identifiers
   },
   headers: { "X-Requested-With": "XMLHttpRequest","Content-Type": "application/json" }
});

请注意,根据Axios Documentation

// `params` are the URL parameters to be sent with the request
// Must be a plain object or a URLSearchParams object

答案 1 :(得分:0)

对于那里的 php 人员。 PHP 在执行删除/放置时不会解析请求正文,因此 $_POST 数据保持为空。您可以使用

获取输入
First Choice
|--> Address: 9401 Sunset Blvd, Zip Code: 90210
|--> Phone number: 800-225-5288
Green Grass"
|--> Address: 5 Lake Shore Drive, Zip Code: 60652
|--> Phone number: 800-867-5309

感谢get a PHP delete variable

花了一整个下午试图弄清楚这一点。在大多数情况下,使用 axios 的 params 选项可能更容易。更多详情请见:HTTP protocol's PUT and DELETE and their usage in PHP