Thanks Anand for finding out the problem! (For CherryPy, though. SimpleHttpServer error is different - it doesn't show an error in console window.)
How do I guarantee that I read all post data? > web.unloadhooks['input'] = web.input And what exactly does this do? Will this make sure all data is read before the next request? It should really be the web server's responsibility to understand the HTTP protocol and parse the data though. Thanks Jack Friday, December 28, 2007, 6:12:29 PM, you wrote: > On Dec 29, 2007 3:00 AM, Gary Bernhardt > <[EMAIL PROTECTED]> wrote: >> >> On Dec 26, 2007 6:08 AM, JLIST <[EMAIL PROTECTED]> wrote: >> > >> > Hello all, >> > >> > I've been trying a little AJAX with SACK: >> > http://www.twilightuniverse.com/projects/sack/ >> > >> > I'm getting a lot of 405 errors with CherryPy server. >> > The requests fail most of the time, succeed occasionally. >> > >> > This shows on web.py 0.22 console on Windows: >> > 127.0.0.1:1883 - - [26/Dec/2007 02:00:09] "HTTP/1.1 POST /req" - 200 OK >> > 127.0.0.1:1883 - - [26/Dec/2007 02:00:11] "HTTP/1.1 >> rndval=1198663209684POST /req" - 405 Method Not Allowed >> > 127.0.0.1:1883 - - [26/Dec/2007 02:00:11] "HTTP/1.1 >> rndval=1198663211026POST /req" - 405 Method Not Allowed >> >> This log makes it look like the HTTP method being sent is >> "rndval=<random integer>POST". Obviously, that isn't a valid HTTP >> method. I can't imagine what kind of bug could result in this, but >> maybe it's some kind of printed debug info that's making its way into >> the HTTP request somehow? > Aah, I know what is happening. > When you send a POST request and not read the input, it gets available > to the next request. > For example consider the following 2 requests. > POST /path1 HTTP/1.1 > k1: v1 > k2: v2 > rndval=1234 > GET /path2 HTTP/1.1 > k1: v1 > k2:v2 > Since the data in POST request is not read, the second request's > method becomes rndval=1234GET. > Even I noticed this once. This happens only with cherrypy webserver > and not with lighttpd or apache. > If you make sure you read all the given input data, it will be OK. You > may add the following unloadhook. > web.unloadhooks['input'] = web.input --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web.py" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/webpy?hl=en -~----------~----~----~----~------~----~------~--~---
