2011-01-23 10 views
1

jQuery(1.4.4)からCherryPyサーバー(3.1.2)へのDELETE HTTPリクエストを何らかの理由で送信しても何も送信されません。 POST、GET、PUTリクエストがパラメータを送信しています。ここでjQueryからCherryPyへのDELETE要求がパラメータを送信しない

はCherryPyにサーバーのコードは次のとおりです。

import cherrypy 

class DeleteExample(object): 
    exposed = True 

def PUT(self, *args, **kwargs): 
    print kwargs 

def DELETE(self, *args, **kwargs): 
    print kwargs 

global_conf = {'global': {'server.socket_port': 8080}, 
      '/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher(), 
        'tools.staticdir.root': '/home/kevin/workspace/delete_example', 
         'tools.staticdir.on': True, 
         'tools.staticdir.dir': 'src', 
         'tools.staticdir.index': 'index.html'} 
      } 
cherrypy.quickstart(DeleteExample(), config=global_conf) 

、ここでは、jQueryのコードでのindex.htmlです:

<html> 
    <head> 
     <script type="text/javascript" src="jquery-1.4.4.js"></script> 
     <script> 
     $(document).ready(function() { 
      $.ajax({ 
      type: "PUT", 
      url: "http://localhost:8080", 
      dataType: "json", 
      data: {first: 10, second: 200} 
      }); 

      $.ajax({ 
      type: "DELETE", 
      url: "http://localhost:8080", 
      dataType: "json", 
      data: {first: 10, second: 200} 
      }); 
     }); 
     </script> 
    </head> 
    <body> 
    </body> 
</html> 

これはCherryPyにウェブサーバからプリントアウトされているものです:

{'second': '200', 'first': '10'} 
127.0.0.1 - - [23/Jan/2011:04:02:48] "PUT/HTTP/1.1" 200 19 "http://localhost:8080/" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13" 
{} 
127.0.0.1 - - [23/Jan/2011:04:02:51] "DELETE/HTTP/1.1" 200 19 "http://localhost:8080/" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13" 

あなたが見ることができるように、.ajax関数を使って行われたPUTとDELETEリクエストは、タイプ。しかし、何らかの理由でPUTはすべてのパラメータを送信し、DELETEはパラメータを送信しません。

DELETE要求が適切なパラメータを送信していない理由は何ですか?

答えて

3

リクエストボディを使用してDELETEリクエストを送信しようとしています。珍しいです。 (GETにも同じことが当てはまります)。

関連する問題