【发布时间】:2012-02-08 15:58:57
【问题描述】:
我有一个这样的服务器端 webpy 代码:
urls = (
'/home', 'homePage',
'/clients/(.*)', 'clientsPage',
)
# Class for common pages methods and parameters
class allpages(object): ....
def logout(self):
i=web.input().keys()[0]
if i=='logout': session.kill()
return
class homePage(allpages):
def GET (self):
self.loginCheck()
return self.showpage('home',self.userName())
def POST (self):
self.logout()
return
class clientsPage(allpages):
def GET (self, client):
self.loginCheck()
if client == '': clientID=renderInc.firmlist('clients')
elif client == 'new': clientID=renderInc.newfirm('clients')
else: clientID = 'There is no such client' #TODO: make a 404 page
return self.showpage('clients',clientID)
def POST (self):
self.logout()
return
在我的一个 HTML 模板(页脚)中,有一个“注销”按钮,可在单击时运行脚本:
jQuery('#logout').click(function(){
jQuery.post(path,{'logout':''}, function(){location.reload();});
});
在 /home 部分一切正常,但是当我尝试从 /clients/ 页面注销时,它会引发错误:TypeError: POST() 只需要 1 个参数(给定 2 个)。
问题 1:为什么会这样?
问题2:有什么方法可以让任何方法默认在每个页面上都在POST中运行(不要在每个类中复制self.logout()行。
【问题讨论】: