对Flask Rest API的Ajax调用未获取JSON

时间:2018-07-18 14:19:41

标签: json ajax flask

我通过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调用中做错了吗?

2 个答案:

答案 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: ...