2017-02-25 84 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")