2016-04-14 32 views
0

收到字符串我想嘗試,並從AJAX傳遞一個字符串到瓶,該請求被接受,但似乎並沒有被通過瓶,從AJAX

AJAX的任何數據來:

function scan(){ 
    var i = $(".btn.btn-default").attr("id"); 
    var id = i.toString(); 
    console.log(id); 
    $.ajax({ 
    type: "GET", 
    url: '/scan', 
    data: id, 
    success: function(data) { 

    console.log(data); 
    } 
}); 
} 

的Python /瓶:

if request.method == 'GET': 
    logger.log('request received') #this is printing out successfully 
    a = request.data 
    if a == 'mystring': 
     return 'Successful' 

我在做什麼錯?這一定是非常簡單的事情。

+0

當您登錄'request.data',是空的? GET請求中的數據作爲查詢字符串參數傳遞,這些參數位於'request.args'中。您可以隨時登錄'request.full_path'來確定jQuery是否實際上附加了任何查詢字符串參數;因爲你沒有提供一個鍵值對來序列化,jQuery可能根本就不傳遞任何數據。 –

回答

1

引述jQuery documentation

數據 類型:PlainObject或字符串或陣列的數據要被髮送到所述服務器 。它被轉換成查詢字符串,如果還不是字符串的話。 它附加到GET請求的URL。請參閱processData選項至 以防止此自動處理。 對象必須是鍵/值對。如果 值是一個數組,則jQuery將基於傳統設置值(如下所述)使用相同密鑰 對多個值進行序列化。

由於您未向$.ajax提供密鑰/值對,因此沒有數據正在發送到服務器。相反,請嘗試data: {id: id}

然後,在Flask中,您可以訪問此值:request.args['id'](或request.args.get('id', None)提供缺省值None)。

HereRequest.args的文檔。)