سؤال

I have an application in which I am using OData and Knockout Js. In my application I am using POST, GET and DELETE HTTP Verb and when I hosted my application, the GET and POST doesn't throw any error but DELETE does throw an error, not sure how to fix it.

Following is where I am using DELETE

self.remove = function (canadiancrude) {

        var conf = confirm("Are you sure you want to delete this record?");
        if (conf == true) {
            $.ajax({
                url: '/odata/Canadiancrudes(' + canadiancrude.Id + ')',
                type: 'DELETE',
                contentType: 'application/json',
                dataType: 'json'
            });
        }
    }

And the error is

405 - HTTP verb used to access this page is not allowed.
The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.

"NetworkError: 405 Method Not Allowed

How do I fix it

هل كانت مفيدة؟

المحلول 2

Even Adding the below lines to my web.config helped me

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule"/>
    </modules>

نصائح أخرى

Try to modify your request:

$.ajax({
    url: '/odata/Canadiancrudes(' + canadiancrude.Id + ')',
    type: 'DELETE',
    dataType: 'json',
    headers: { 
        "Content-Type": "application/json",
        "X-HTTP-Method-Override": "DELETE" }
});

Also, if you use IIS you could do next steps:
1) In Control Panel, click Programs and Features, and then click Turn Windows Features on or off.
2) Expand Internet Information Services, then World Wide Web Services, then Common HTTP Features.
3) Unselect WebDAV Publishing, and then click OK.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top