1

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またはに変更するとPUTself.request.get()うまく機能します。ただし、クライアント側でDELETEメソッドを使用する場合は、self.request.get()空のみを返します。

をチェックするself.request.bodyと、すべてのクエリ文字列が表示されます。本文を自分で解析する代わりに、delete メソッドから特定のクエリ文字列を取得するための便利な方法はありますか?

4

0 に答える 0