java - Request-Body(req.body) 显示值,但 Request-QueryParams(req.queryParams) 显示空值?

标签 java node.js vue.js axios spark-java

我使用 vuejs-axios 从客户端获取数据并将其发布到服务器端。在服务器端,我使用了 java,而我使用 SparkJAVA 框架来处理请求响应。 下面提到的代码块是我用来将表单数据从 vuejs 发布到 java 的代码。

const formData = new FormData();
  formData.append("name", this.name);
  formData.append("address", this.address);
  console.log(formData);
  axios
    .post("http://localhost:1234/formData", formData)
    .then(response => {
      console.log(response);
    })
    .catch(err => {
      console.log(err);
    });

下面提到的代码用于解析从vuejs获取的FormData。

 public static void main(String[] args) {

    Spark.port(1234);
    Main.apply();

    get("/", (req, res) -> {
        return new ModelAndView(null, "StartPage.ftl");
    }, new FreeMarkerEngine());

    post("/formData", (req, res) -> {
        return FormController.showFormData(req, res);
    });
}

public class FormController {

    public static Logger logger = LogManager.getLogger(FormController.class);

    public static String showFormData(Request req, Response res) {
    System.out.println("Data body: " + req.body());
    System.out.println("Name: " + req.queryParams("name"));
    System.out.println("Address: " + req.queryParams("address"));

    return "Well Done!!!";
}
}   

下面提到的是输出:

Content-Disposition: form-data; name="name"
Daniel
------WebKitFormBoundarydSA5AgIIhlMNCqA2

Content-Disposition: form-data; name="address"
New York
------WebKitFormBoundarydSA5AgIIhlMNCqA2--

Name: null
Address: null

我在 req.body() 中收到响应,但在 req.queryParams() 中没有收到响应。为什么? 而且 req.body() 的响应看起来有点不寻常。

最佳答案

那是因为 req.queryParams 用于获取 URL 参数。示例:http://localhost:1234/formData?name=Bruno&address=earth 。尝试使用 official documentation of Spark Java 中的这个示例。在这里,它教您如何从多部分中获取文件。进行一些更改后可能会起作用。

关于java - Request-Body(req.body) 显示值,但 Request-QueryParams(req.queryParams) 显示空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584926/

相关文章:

java - 我如何单击以检查选中了哪些复选框以及是否按下了按钮

javascript - jsdom.env 不适用于 node.js C9

javascript - crypto模块中6个随机字节可以产生的最大值是多少?

android - 无法在 windows 7 64 位中添加 cordova android 平台?

vue.js - VueJS 路由未定义

java - 字段是否需要显式最终才能拥有 "proper"不可变对象(immutable对象)?

java - Spring文件上传内容类型验证,总是八位字节流?

java - Android 版 ORM 精简版

javascript - 如何使用 Vue.js 访问 API?

javascript - 如何在 Vue 中加载 YAML 文件?