2010-03-07 32 views
7

Tôi có thể sử dụng động từ này trong Python Windows SDK. Nhưng không phải trong sản xuất. Tại sao? Tôi đang làm gì sai?Cách sử dụng phương thức HTTP DELETE trên Google App Engine?

Thông báo lỗi bao gồm (chỉ nhìn thấy qua con đom đóm hoặc cáy)

dạng sai yêu cầu

hoặc một cái gì đó như thế

Mã của tôi trông giống như:

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

Bạn nói rằng bạn đang thấy điều này trong sản xuất, phải không? Nhật ký yêu cầu nói gì trong bảng điều khiển quản trị sản xuất? Có một vài điều kiện đặc biệt có thể xảy ra mà mã của bạn không xử lý và nếu mã bị lỗi, bạn sẽ thấy một số thông tin về mã đó. Ngoài ra, sẽ rất hữu ích nếu thấy yêu cầu thực tế được gửi tới AppEngine. –

+0

@Adam Tôi không thấy gì trong bảng điều khiển dành cho quản trị viên, chỉ các lỗi cũ hơn. –

+0

Nó sẽ xuất hiện, sau đó, rằng yêu cầu thậm chí không làm cho nó tất cả các cách để xử lý yêu cầu, do đó, đó không phải là nơi mà vấn đề là. Bạn có thể tự đăng yêu cầu thực tế trong phần nội dung câu hỏi của mình không? –

Trả lời

3

Trình xử lý của bạn có vẻ OK, bạn có chắc là bạn đang gửi các yêu cầu t đúng? Sử dụng jQuery, điều này làm việc cho tôi (cả hai sử dụng dev_appserver và google sản xuất động cơ ứng dụng):

$('#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') 

Gửi nội dung phản hồi/tin nhắn đã không làm việc cho tôi (ví dụ như "cho phép từ chối" tin nhắn trong ví dụ của tôi sẽ không đến khách hàng). Bạn đã xác minh các mục của mình chưa bị xóa chưa?

+0

có thể họ đã sửa nó –

+1

@ JaderDias - Không, điều này làm việc vì không có yêu cầu nào được gửi trong yêu cầu DELETE ví dụ này. – jmort253

+0

Tác phẩm này. Nhưng bạn gửi một cơ thể yêu cầu thậm chí không đến được máy chủ. – fiatjaf