2

我有以下 Python Flask 路由器:

@app.route('/create', methods=['GET', 'POST'])
@crossdomain(origin='*')
def create():
    if request.method == 'POST':
        print(request.form)
        title = request.form['title']
        url = request.form['url']

        new_mark = Mark(
            title=title,
            url=url
        )
        new_mark.save()

        return new_mark

当我进行 ajax 调用(如下)时,它会响应 400 错误。

$.ajax({
     type: 'POST',
     url: 'http://localhost:5000/create',
     data: {
            'title': sender.title,
            'url': sender.url
           },
     xhrFields: {
            withCredentials: true
           },
     dataType: 'json'
});

当我尝试打印出来时,request它会打印一个空的immutableMultiDict. 知道为什么它给出这个 400 以及为什么没有数据吗?

4

2 回答 2

1

您的 ajax 调用正在发送 json 编码的数据。我想你应该解码。

import json

data = json.loads(request.data)

print data.get("title")
于 2012-12-25T23:06:16.883 回答
0

我很蠢。我实际上并没有发送任何数据,因为 sender.url 和 sender.title 不包含任何值-_-。

于 2012-12-25T23:25:22.703 回答