2011-04-28 74 views
2

基本上,我想在我的網站上有一個交互式按鈕,當點擊它時,將一些數據發送到服務器以便檢查並顯示響應(無需發送表單/頁面重新加載)。bottle.py:通過javascript發送數據

我認爲這將是這樣的:

function checkData() 
{ 
    var req = new XMLHttpRequest(); 
    var conf = document.getElementById('my_text_area').value; 

    req.open("GET", 'check_data', true); 
    req.onreadystatechange = function() 
    { 
     var pre = document.getElementById('check_data_out'); 
     pre.innerHTML = req.responseText; 
    } 

    req.send(conf); 
    return false; 
} 

和服務器端:

@get('/check_data') 
def check_data(): 
    # Process the content and answer something... 
    content = str(request.is_ajax) + ' - ' + str(request.GET) + ' - ' + str(request.POST) 
    return content 

但是,這顯然是行不通的。要麼不是通過javascript發送數據的正確方式,要麼是通過bottle.py訪問它的正確方式。

向我展示它是如何工作的,非常感謝。

+2

爲什麼不使用JavaScript庫,如dojo和jquery?否則,您需要額外努力來克服不同瀏覽器之間的AJAX差異。 – 2011-04-28 11:01:24

+0

這是怎麼回事?使用Chrome開發工具來檢查請求/響應。 – abraham 2012-02-20 04:23:40

+0

對不起,這個問題現在太舊了,我不記得它的細節了。 – dagnelies 2012-02-22 16:37:59

回答

0

您可以使用dojo進行客戶端邏輯。

var button = dojo.byId('button_id'); // button_id refers to the id of the button you want to click 

dojo.connect(button,'onclick',dojo.xhrGet({ 
    url: '/check_data', 
    handleAs : 'text', 
    load : function(response){ 
     dojo.byId('button_id').innerHTML = response; 
    } 
}));