我通过Flask对我的REST API进行了以下ajax调用:
$.ajax({
type: "POST",
cache: false,
url: "/addEvent",
dataType: "json",
data: JSON.stringify({
"event_id": "e-123"
}),
success: function(response, status, xhr) {
var ct = xhr.getResponseHeader("content-type") || "";
if ( xhr.status == 200 ) {
console.log("Event created.");
}
else {
alert("Error! status: " + xhr.status)
}
},
error: function(xhr, exception) {
console.log("error > xhr.status:" + xhr.status);
console.log("error > exception: " + exception);
},
complete: function(response, status, xhr) {
console.log("Finished!");
}
});
我的Flask REST API app.py文件包含以下内容:
from flask import Flask, request
def addEvent():
request_data = request.get_json()
但是,'request_data'是None
,而request.get_data()
包含b'{"event_id":"e-123"}'
我在ajax调用中做错了吗?
答案 0 :(得分:2)
您正在将字符串发送到Flask REST API。
尝试从以下位置更改ajax调用中的数据字段:
properties
到
import 'dart:io';
答案 1 :(得分:1)
在您的AJAX请求上添加contentType: 'application/json'
:
$.ajax({
type: "POST",
cache: false,
url: "/addEvent",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: ...