"405 Method not allowed" - when using ASP.NET jQuery ajax POST
Solution 1
Maybe late to the party but, try adding to your Web.Config file:
< handlers >
....
< remove name="WebDAV" />
....
< /handlers >
This article explains what could be causing the problem:
Solution 2
405 errors often arise with the POST method. You may be trying to introduce some kind of input form on the Web site, but not all ISPs allow the POST method necessary to process the form.
All 405 errors can be traced to configuration of the Web server and security governing access to the content of the Web site, so should easily be explained by your ISP.
http://www.checkupdown.com/status/E405.html
I would turn IIS Logging on to check requests. Also get Fiddler to see what is going on behind the scenes
Comments
-
Curtis almost 2 years
I've searched through loads of different existing SO questions related to a similar issue, but I've not been able to find anything relevant to my issue.
I have the following jQuery code:
$.ajax({ url: "Index.aspx/DeclineRequest" , type: 'POST' , contentType: 'application/json; charset=utf-8' , dataType: 'json' , data: JSON.stringify({ RequestId: requestId }) });
I'm using a very similar technique to POST data on another ASP.NET web application, and this works fine. However, this application is returning the following error:
"NetworkError: 405 Method Not Allowed - http://localhost:57255/....."
I can't find anything different about these 2 applications, so I'm confused as to why this isn't working.
This only difference between these 2 applications which I can think of, is that the one that is working is .NET 2.0, and the one that isn't working is .NET 3.5.
I've tried adding the following to my
web.config
, but I still get the same 405 error:<webServices> <protocols> <add name="HttpPost"/> <add name="HttpPostLocalhost"/> </protocols> </webServices>
How can I resolve this issue?
UPDATE (16:40): I've moved this application to IIS, and the 405 error is no longer being returned. Our development environment however is localhost only. Why would this only error on localhost?
-
Dimitri about 12 yearsThat's a WebMethod call format that calls DeclineRequest method defined in Index.aspx codebehind.
-
Curtis about 12 yearsI'm just doing this through
localhost
at the moment using VS 2010, so I don't have any IIS Logging. -
Dimitri about 12 yearsI have seen a lot of inconsistencies between the ways IIS and VS work. I'd try setting up IIS host and go from there.
-
Curtis about 12 yearsThis is working fine for my other application though, running on the same machine, with almost identical code. So installing IIS doesn't seem like the solution.
-
Curtis about 12 yearsEven without sending any parameters, I get the same issue
-
Parv Sharma about 12 yearswhat exactly is he TYPE of the parameter there? is it some non nullable type?
-
Dimitri about 12 yearsokay. But you can still get Fiddler and examine request/response
-
Curtis about 12 yearsI've downloaded fiddler but it's not really telling me much more than FireBug does
-
Dimitri about 12 yearscontentTypeString Default: 'application/x-www-form-urlencoded' When sending data to the server, use this content-type. Default is "application/x-www-form-urlencoded", which is fine for most cases.
-
Baradwaj Aryasomayajula almost 8 yearsThat is defenitely not the correct answer. datatype has nothing to do with the CORS error.