2017-02-25 81 views
0

我为Javascript中的对象创建了构造函数。我希望这个对象能够发送一些数据到服务器。无法从Ajax帖子获取值

function basket(list_of_things, price, basket_name){ 
     this.list_of_things = list_of_things; 
     this.price = price; 
     this.basket_name = basket_name; 
     this.share = function(){ 
     $.post('/post_basket', 
     { 
      basket_name: this.basket_name, 
      list_of_things: this.list_of_things 
     }, 
     function(data,status){ 
      alert("Data: " + data + "\nStatus: " + status); 
     }); 
     }; 
     }; 

我也以我的Python功能

@app.route('/post_basket', methods=['POST']) 
def post_basket(): 
    a = request.args.get('basket_name', type = str) 
    print a 
    return ("poo") 

我想从阿贾克斯后得到的数据所做的路由,并保持返回无我。这里可能是什么问题?

回答

0
$.ajax({ 
    url: '/post_basket', 
    method: 'POST', 
    data: {basketName: this.basket_name, listOfThings: this.list_of_things}, 
    success: function(response){ 
     alert("Data: " + response); 
    }, 

    error: function(e) { 
    alert(e) 
    } 

)} 

我不认为你需要在这里包装你的ajax调用函数。有一个错误函数也是有帮助的,所以我们可以得到更多关于它失败的原因。也许这条路线是错误的,也许你需要完整的路线,或者你得到一个不好的请求400。我上面写的是更传统的ajax,也许它会给你一些东西来尝试。让我们知道,如果您对我们的错误消息:)

+1

我用你的代码,它仍然是一个成功,像以前一样,唯一的问题是现在它说.share不是一个函数,在后端,我仍然没有收到任何东西,尽管我的Python代码成功地返回poo回前端。 – user3672855

0

我想通了,因为我用后,我可以使用的形式访问向服务器发送数据,而不是得到的,像下面

@app.route('/post_basket', methods=['POST']) 
    def post_basket(): 
    a = request.form['basket_name'] 
    print a 
    return ("poo")