我是反应和烧瓶API系统的新手。我创建了一个网站,允许用户通过搜索栏进行搜索。我希望能够通过POST请求将查询从React搜索栏发送到FlaskAPI。但是,我得到一个空字符串或ImmutableDict
反应码
function handlePostQuery(query){
if (query != "") {
axios.post('http://localhost:5000/api/query', query)
.then(function(response){
console.log(response);
//Perform action based on response
})
.catch(function(error){
console.log(error);
//Perform action based on error
});
} else {
alert("The search query cannot be empty")
}
}
烧瓶代码
@app.route('/api/query', methods = ['POST'])
def get_query_from_react():
data = request.form
print(data)
return data
回答如下:获取烧瓶请求中收到的数据
我尝试了所有这些方法,但是我总是(在烧瓶中)得到一个空字符串,除非我使用request.form
返回给我类似的东西:
ImmutableMultiDict([(“我在搜索栏中键入的内容”,”)
然而,在webconsole中,我得到:
config: {url: "http://localhost:5000/api/query", method: "post", data: "what I type in the search", headers: {…}, transformRequest: Array(1), …}
data: {what I type in the search: ""}
headers: {content-length: "38", content-type: "application/json"}
request: XMLHttpRequest {readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, onreadystatechange: ƒ, …}
status: 200
statusText: "OK"
__proto__: Object
我假设axios已经从React返回了一个JSON。因此,我认为这不是一个问题。
您可以尝试以下操作:
反应
function handlePostQuery(query){
var myParams = {
data: query
}
if (query != "") {
axios.post('http://localhost:5000/api/query', myParams)
.then(function(response){
console.log(response);
//Perform action based on response
})
.catch(function(error){
console.log(error);
//Perform action based on error
});
} else {
alert("The search query cannot be empty")
}
}
瓶子
@app.route('/api/query', methods = ['POST'])
def get_query_from_react():
data = request.get_json()
print(data)
return data
我认为问题是Axios没有正确阅读JSON。这就是为什么我创建了myParams
字典并传递给Axios。
我想通过“id”从我的mongodb获取数据。如果我的id与mongodb中id的值匹配,则它将获取该对象,但其抛出错误为: {“message”:“对于模型“PostMessage”“”的路径“\u id”处的值“s-CoAhDKd”,转换为ObjectId失败}
问题内容: 我需要知道我的用户是否已连接。为此,我想读取在服务器端通过express-session设置的cookie: 我尝试使用react-cookie,但是它不起作用,但是我复制/粘贴了npm react-cookie doc: 这很奇怪,因为可以呈现正确的结果,但是我不知道如何处理: 问题答案: 您可以使用软件包,也可以使用命令进行安装。 文档:https : //github.com/j
问题内容: 我发布了一系列复选框。而且我无法使其正常工作。我没有在foreach循环中包含适当的语法来保持简单。但它正在工作。我通过尝试使用文本字段而不是复选框执行相同的操作进行了测试,并且它与文本字段一起使用。 这是不起作用的部分。它回显“邀请”而不是数组。 问题答案: 您的$ _POST数组包含邀请数组,因此将其读取为 因为它是一个数组,所以将不起作用。您必须遍历数组以获取所有值。
main.java Controller/Controller.java 模型/ConnectDB.java 查看/fxmlSample.fxml 错误: 错误:(64,9)Java:类Sample.Controller.Controller中的method initData无法应用于给定类型;必需:javafx.event.actionevent找到:没有参数原因:实际和正式参数列表的长度不同
问题内容: 我正在尝试使用fetch发布 JSON对象。 据我了解,我需要将一个字符串化的对象附加到请求的主体,例如: 当使用jsfiddle的json回显时,我希望看到返回的对象(),但这不会发生-chrome devtools甚至不会在请求中显示JSON,这意味着它没有被发送。 问题答案: 借助ES2017 支持,这是如何实现JSON负载的方法: 但是,问题是由 很久以来修复的chrome b
问题内容: 我将在Django中从AJAX请求中获取参数,这是我正在做的事情: base.html: main.js: views.py: 是的,我知道目前我的JS无法从文本形式获取真实数据,它仅发送静态文本“ MY TEXT”。但是当我按下按钮时,出现 “ MultiValueDictKeyError at /在“”中找不到“键’name’” 我做错了什么? 我更改了代码:main.js bas