2010-03-07 57 views
7

我可以在Python Windows SDK中使用這個動詞。但不在生產中。爲什麼?我究竟做錯了什麼?如何在Google App Engine上使用HTTP方法DELETE?

from google.appengine.ext import db 
from google.appengine.ext import webapp 

class Handler(webapp.RequestHandler): 
    def delete(self): 
     key = self.request.get('key') 
     item = db.get(key) 
     item.delete() 
     self.response.out.write(key) 
+0

你說你在生產中看到這個,是嗎?請求日誌在生產管理控制檯中說什麼?有幾種可能的例外條件是您的代碼無法處理,如果代碼崩潰,您會看到一些有關它的信息。 此外,查看發送給AppEngine的實際請求將非常有幫助。 – 2010-03-08 15:07:10

+0

@Adam我在管理控制檯中什麼都看不到,只是老的錯誤。 – 2010-03-08 15:48:29

+0

然後,它會出現,請求甚至沒有一直到請求處理程序,所以這不是問題所在。你可以在你的問題的正文中發佈實際請求嗎? – 2010-03-08 15:50:53

回答

3

該錯誤消息包括

格式錯誤的請求

或類似的東西

我的代碼看起來像(只能通過螢火或提琴手看到的)你的處理程序看起來很好,你確定你正在發送這些請求t正確嗎?使用jQuery,這對我的作品(包括使用dev_appserver和谷歌應用程序引擎製作):

$('#delete-button').click(function() { 
    $.ajax({ 
     'type': 'DELETE', 
     'url': '/some/url/that/handles/delete' 
    }) 
}); 

class DeleteHandler(webapp.RequestHandler): 

    def delete(self): 
     if users.get_current_user() == allowed_user: 
      the_data_model.delete() 
     else: 
      self.response.out.write('Permission denied') 

發送響應體/消息並沒有爲我工作(例如:拒絕「權限」在我的例子郵件將不到客戶)。你有沒有驗證你的物品沒有被刪除?

+0

也許他們已經修復了它 – 2010-06-04 15:20:30

+1

@JaderDias - 不,這是可行的,因爲在這個示例中沒有請求主體發送DELETE請求。 – jmort253 2012-01-18 21:13:14

+0

這有效。但是你發送一個請求的請求甚至不能到達服務器。 – fiatjaf 2012-07-06 15:03:11

相關問題