我有一个API,我调用一个get请求通过表单数据发送到查询参数,但我得到get请求不接受表单数据。如何做
http://ihub-fastapi-solubility.herokuapp.com/predict?solute=CC(C)(C)Br&solvent=CC(C)(C)O
这是URL,溶质和溶剂是查询参数。
const onSubmit = (e) => {
e.preventDefault(); // <-- prevent the default form action
const formData = new FormData();
formData.set("solute", solutestate); // <-- local component state
formData.set("solvent", solventstate); // <-- local component state
console.log({ formData });
fetch("http://ihub-fastapi-solubility.herokuapp.com/predict", {
method: "get",
body: formData,
}).catch((err) => {
setError(err.error);
console.log(err);
});
当我尝试使用post
时,出现
错误
2条答案
按热度按时间jdgnovmf1#
FormData在这里不是最佳选择,因为它主要用于构建
multipart/form-data
请求有效负载,以供POST
、PUT
和PATCH
请求使用。使用URLSearchParams来轻松构造查询参数并将其序列化为URL...
使用
URLSearchParams
还有一个额外的好处,那就是可以正确地对数据进行URL encoding。dly7yett2#
除了@菲尔的回答:如果已经有了一个窗体,可以使用
FormData
初始化URLSearchParams
。例如,如果你有一个这样的表单
您可以按以下方式提交