Skip to main content
 首页 » 编程设计

jquery之发送数据的 jQuery ajax post 请求是什么格式,如何通过 Flask 的请求对象访问它

2025年05月04日27unruledboy

我正在创建一个使用 jQuery 的 $.post() 对象发送 XHR AJAX 请求的网页。另一个域上的 Flask 应用正在接收该帖子。 Javascript 如下:

$.post('http://myurl.com/create', { 
     'title': sender.title, 
      'url': sender.url 
}); 

适用的 Flask 路由器代码是:

@app.route('/create', methods=['GET', 'POST']) 
@crossdomain(origin='*') 
def create(): 
    print(request.args.get('title')) 
    if request.method == 'POST': 
        title = request.form['title'] 
        url = request.form['url'] 
 
        new_mark = Mark( 
            title=title, 
            url=url 
        ) 
        new_mark.save() 
 
        return redirect(url_for('index')) 

当表单提交到 url 时,Python 工作得很好,但当我通过 jQuery 的 AJAX 对象进行 POST 时,Python 工作得很好。每次我尝试发出 AJAX 请求时都会抛出 400 错误。我查看了 Flask 的 request.args 对象,但发出请求时该对象中没有任何内容。

有什么想法吗?

请您参考如下方法:

问题是您的 Ajax 请求未配置为针对跨域请求。 我建议使用 $.ajax 而不是 $.post 以获得更大的灵 active 并在请求配置中设置 crossDomain: true。

$.ajax({ 
  type: 'POST', 
  url: 'http://myurl.com/create', 
  crossDomain: true, 
  data: '{'title': sender.title, 'url': sender.url}', 
  dataType: 'jsonp', 
  success: function(responseData, textStatus, jqXHR) { 
    // Success Callback 
  }, 
  error: function (responseData, textStatus, errorThrown) { 
    // Error Callback 
  } 
}); 

希望这会有所帮助。