webapp2 delete http メソッドでクエリ文字列を取得する際に問題があります。self.request.get('my_query_string')
特定のクエリ文字列を取得するために使用できません。delete メソッドからどのように取得しますか?
クライアントには、http リクエストを送信する次の JavaScript コードがあります。
function send_http(value1, value2) {
$.ajax({
type: 'DELETE',
url: '/path/to/my/handler'
data: {key1: value1, key2: value2}
});
}
GAE webapp2 では、私のハンドラーは次のようになります。
class MyHandler(webapp2.RequestHandler):
def post(self):
logging.debug('key1: %s' % self.request.get('key1')) # This is OK
logging.debug('key2: %s' % self.request.get('key2')) # This is OK
def put(self):
logging.debug('key1: %s' % self.request.get('key1')) # This is OK
logging.debug('key2: %s' % self.request.get('key2')) # This is OK
def delete(self):
logging.debug('key1: %s' % self.request.get('key1')) # This is NG
logging.debug('key2: %s' % self.request.get('key2')) # This is NG
logging.debug('body: %s' % self.request.body) # key1=value1&key2=value2
クライアント側で http メソッドをPOST
またはに変更するとPUT
、self.request.get()
うまく機能します。ただし、クライアント側でDELETE
メソッドを使用する場合は、self.request.get()
空のみを返します。
をチェックするself.request.body
と、すべてのクエリ文字列が表示されます。本文を自分で解析する代わりに、delete メソッドから特定のクエリ文字列を取得するための便利な方法はありますか?