2014-03-26 68 views
0

我有一個像控制模塊一樣工作的html頁面,並且有一個按鈕,點擊時會運行觸發報警的python腳本。當我點擊它時,它什麼都不做。但是我在開發者工具中沒有遇到任何錯誤。 python代碼工作,所以腳本不是問題,但我的ajax請求。爲什麼我的ajax調用不起作用?

下面是代碼:

<input type='button' class="btn btn-default" value='Alarm ON' id = 'alarm'> 

<script> 
     $("#alarm").click(function() 
     { 
      $.ajax({ 
      type: "GET", 
      url: "lib/scripts/AlarmON.py", 
      success: function(response){} 
      }); 
     }) 
</script> 

我知道,如果調用將工作,因爲在我的房間的報警器就會熄滅。

編輯: 對於那些有興趣,這是我的腳本:

import suds 
from suds.client import Client 
from suds.transport.http import HttpAuthenticated 
from suds.sax.text import Raw 

def main(): 
    #Sends a network message to device to trigger an alarm 
    url = "http://foobar/WSDL/v4.0/iLON100.WSDL" 
    client = Client(url, username='ilon', password='ilon', location = 'http://foobar/WSDL/iLON100.WSDL') 
    xml = Raw('<Item><UCPTname>Net/MB485/PLC/Virtual Fb/y2</UCPTname><UCPTvalue>TRUE</UCPTvalue></Item>') 
    client.service.Write(xml) 

if __name__ == "__main__": 
    main() 

UPDATE我把文件撰寫(「喜)成功()內,如果調用工程寫入喜來頁,所以我不知道是怎麼回事..

+0

python腳本如何觸發警報?一般來說,我認爲你會看看腳本在'success'函數處理程序中返回的內容,然後根據它執行操作... – mgilson

+0

現在我得到了意想不到的結束標記;併除去;給我未被捕獲的語法錯誤輸入的意外結束 – user2769651

+0

......你並沒有要求它在成功回調中做任何事情。 – ncksllvn

回答

2

你不能直接這樣執行python腳本看看這裏:。 http://docs.python.org/2/howto/webservers.html

+0

這可能就是這樣.. – user2769651

+1

就是這樣。由於您正在使用Bottle,因此您需要爲您的AJAX代碼設置路由並將您的請求發送到那裏......此處有一個示例:https://gist.github.com/Arthraim/994641 check line 30 – Luke

0

還包括功能錯誤,看看會發生什麼:

<script> 
    $("#alarm").click(function() 
    { 
     $.ajax({ 
     type: "GET", 
     url: "lib/scripts/AlarmON.py", 
     success: function(response){ 
      console.log(response); 
     }, 
     error: function(xhr){ 
      var status = xhr.status; 
      var text = xhr.statusText; 
      console.log(status + ': ' + text); 
     } 
     }); 
    }) 
</script> 
+0

它毫無意義添加錯誤,導致成功總是有效的,當我點擊按鈕。 – user2769651