Javascript Python正在抛出错误;类型错误:';非类型';对象不可下标";
我正在通过我的html表单提交信息,希望JS axios能够处理表单提交,从而将传入的数据通知给我的API。但是,我一直收到一个typeerror,它告诉我,“非类型对象不可下标。”下面是我的代码: 我将数据发送到的Python路由Javascript Python正在抛出错误;类型错误:';非类型';对象不可下标";,javascript,python,axios,Javascript,Python,Axios,我正在通过我的html表单提交信息,希望JS axios能够处理表单提交,从而将传入的数据通知给我的API。但是,我一直收到一个typeerror,它告诉我,“非类型对象不可下标。”下面是我的代码: 我将数据发送到的Python路由 @app.route("/api/cupcakes", methods=["POST"]) def create_cupcake(): new_cupcake = Cupcake(flavor=request.json
@app.route("/api/cupcakes", methods=["POST"])
def create_cupcake():
new_cupcake = Cupcake(flavor=request.json["flavor"], size=request.json["size"],
rating=request.json["rating"], image=request.json["image"])
db.session.add(new_cupcake)
db.session.commit()
response_json = jsonify(cupcake=new_cupcake.serialize())
return (response_json, 201)
HTML表单
<form action="/api/cupcakes" method="post">
<label for="flavor">Flavor:</label>
<input type="text" name="flavor"><br>
<label for="size">Size:</label>
<input type="text" name="size"><br>
<label for="rating">Rating:</label>
<input type="number" step="any" min="0" max="100"
name="rating" placeholder="Enter a rating"><br>
<label for="image">Image</label>
<input type="url" name="image" placeholder="Enter an image url"><br>
<input class="btn" type="submit" value="Submit Cupcake">
</form>
这是我错误的照片
我认为问题最有可能是因为
内容类型。默认情况下,axios在HTTP POST请求上使用应用程序/x-www-form-urlencoded
内容类型头。因此,请尝试将内容类型更改为“application/json
”
async function postCupcake() {
let res = await axios.post('/api/cupcakes', {
flavor: flavor,
size: size,
rating: rating,
image: image
},headers: {
'Content-Type': 'application/json',
})
console.log(res)
}
谢谢你的回复。然而,这似乎并没有解决问题。我仍然收到同样的邮件error@rudehlabya您能否尝试在flask函数中打印request.mimetype
?
async function postCupcake() {
let res = await axios.post('/api/cupcakes', {
flavor: flavor,
size: size,
rating: rating,
image: image
},headers: {
'Content-Type': 'application/json',
})
console.log(res)
}