2013-12-07 10 views
8

मैंने पहले से ही वेब एपीआई के साथ काम किया है और कई पैरामीटर पोस्ट करने जैसी कई समस्याएं हैं। मैं WebApi2 करने के लिए उन्नत विशेषताओं मार्ग का उपयोग करें और अब की तरह समस्याओं के लिए:एएसपी.नेट वेब एपीआई HTTP हटाएं 405 विधि अनुमत नहीं

"message":"The requested resource does not support http method 'DELETE'."

मैं खोज स्टैक ओवरफ़्लो और वेब सारा दिन बिताया समस्या को हल करने के लिए:

  • निकाला गया webdav
  • में http protocol सभी get,put,post,delete
  • [HTTPDelete] विशेषता
  • name="ExtensionlessUrlHandler-Integrated-4.0" path="*." जोड़ा verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"
  • आवश्यक मदद here

कोई इस पर मेरा मार्गदर्शन कृपया Google पर?

+0

आपके शीर्षक की आवश्यकता अधिक वर्णनात्मक –

+0

मैंने इसे बदल दिया है। – user2997115

+0

हमें एक खोज क्वेरी (संख्या 5 में) देने में समस्या यह है कि, क्या हम मानते हैं कि आपने 1 मिलियन परिणामों का उपयोग किया है जो कि क्वेरी लौटाती है (कम से कम मेरे लिए, आज)? यदि नहीं, तो यह आपकी मदद करने में हमारी सहायता कैसे करता है? –

उत्तर

15

मुझे एक ही समस्या थी। ,

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

-> यह मेरे लिए किया गया: Legends

+0

मेरे लिए भी काम किया! धन्यवाद –

9

मैं एक ही समस्या थी क्योंकि मेरे नियंत्रक इस तरह था: अपने web.config लिए नीचे दिए गए कोड को जोड़ने system.webserver धारा के तहत इस समस्या को ठीक करना चाहिए

[HttpDelete] 
public HttpResponseMessage Delete(string Id) 
{ 
    .... 
} 

और ग्राहक मैं पर उपयोग किए गए अनुरोध निकाय के रूप में आईडी पर भेजें:

var url = '/api/upload'; 
var data = JSON.stringify({ 'Id': id }); // <-- In the body 
$.ajax({ 
    url: url, 
    type: 'DELETE', 
    data: data, // <-- in the body 
    contentType: 'application/json' 
}) 

जब मैं ग्राहक URL पैरामीटर के रूप में उपयोग करने के लिए बदल के बजाय यह काम किया:

जब आप POST विधि का उपयोग कर रहे

$.ajax({ 
    **url: "/api/SomeController/" + id,** 
    type: "DELETE", 
    dataType: "json", 
    success: function(data, statusText) { 
     alert(data); 
    }, 
    error: function(request, textStatus, error) { 
     alert(error); 
     debugger; 
    } 
}); 

कुछ इस तरह उपयोग नहीं करते,

... 
data: {id:id} 
... 
रूप

:

var url = '/api/upload/' + id; // <- In the URL 
$.ajax({ 
    url: url, 
    type: 'DELETE', 
    contentType: 'application/json' 
}); 
+0

मुझे लगता है कि आपको उपर्युक्त उत्तर में यह सब कुछ चाहिए और अनुरोध सही ढंग से – ncubica

+0

करें यह उत्तर – toddmillernyc

1

हटाएँ क्रिया के लिए जावास्क्रिप्ट कोड इस तरह होना चाहिए।

+0

पावेल खरिबिन है, आपने मेरा दिन बचाया है। उत्तर देने के लिए धन्यवाद – user2934829

संबंधित मुद्दे