在Axios中以GET方法URL搜索参数发送嵌套对象

时间:2019-03-04 06:07:13

标签: reactjs get django-rest-framework axios

我正尝试使用以下URL搜索参数发送请求,但无法访问服务器端的嵌套对象 过滤器

axios.get('/get handler', {
  params: { 
    room: 1,
    filter: {
     fan: 2, 
     table: 1,
  }
});

我可能做错了什么?
我正在服务器端使用 Django restFramework 3,但无法访问该方法中的filter键。我正在使用request.query_params访问查询参数,但是当我执行request.query_params.get('filter')时会得到none

1 个答案:

答案 0 :(得分:3)

您需要序列化参数,并且可以通过编写this github issue中提到的小配置来完成,

通常,您可以在应用程序的main.js文件或顶级文件中使用此配置,但这又取决于您何时执行它

// main.js
import axios from "axios";

// Format nested params correctly
axios.interceptors.request.use(config => {
  window.console.log(config);

  config.paramsSerializer = params => {
    // Qs is already included in the Axios package
    return Qs.stringify(params, {
      arrayFormat: "brackets",
      encode: false
    });
  };

  return config;
});