为什么这个Python Flask路由器在被跨域AJAX调用ping时会返回400错误?

时间:2012-12-25 22:52:36

标签: python jquery flask cors jqxhr

我有以下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以及为什么没有数据?

2 个答案:

答案 0 :(得分:1)

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

import json

data = json.loads(request.data)

print data.get("title")

答案 1 :(得分:0)

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