Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"405 Method not allowed" - when using ASP.NET jQuery ajax POST

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?

like image 505
Curtis Avatar asked Apr 19 '12 11:04

Curtis


Video Answer


2 Answers

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

like image 90
Dimitri Avatar answered Oct 20 '22 08:10

Dimitri


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:

http://www.asp.net/web-api/overview/testing-and-debugging/troubleshooting-http-405-errors-after-publishing-web-api-applications

like image 38
Stralos Avatar answered Oct 20 '22 07:10

Stralos