2014-12-05 4 views
1

여기에 내 문제가 있습니다. asp.net mvc에서 JQuery AJAX 업데이트 데이터를 사용하려고하지만 PUT 메서드를 사용할 때 오류 404, 내 컨트롤러를 찾을 수 없다는 것을 의미하지만 GET/POST 메서드를 사용하면 모든 것이 정상적으로 작동하므로 문제가 무엇입니까? 감사!JQuery AJAX PUT 메서드는 asp.net mvc

var Test= { 
    Update: function (TestId, Test, callback) { 

     var errorMsg = "Missing a parameter!"; 
     if (!TestId) { throw errorMsg; return; } 
     if (Test== null) { throw errorMsg; return; } 
     if (callback == null) { throw errorMsg; return; } 

     var pack = { "test" : Test}; 

     $.ajax({ 
      type: "PUT", 
      url: "/test/" + TestId+ "/update", 
      dataType: "json", 
      data: JSON.stringify(pack), 
      contentType: 'application/json; charset=utf-8', 
      processData: false, 
      cache: false 
     }).done(function (result) { 
      callback(result); 
     }); 

    } 
}; 
+0

요청을 처리하는 asp.net 코드를 게시 할 수 있습니까? 아니면 적어도 일부는? –

+0

(예 : 네트워크 탭의 FireFox 개발자 도구에서) 요청을 확인하고 호출되는 정확한 URL을 확인하십시오. URL 바에 올바른 경로를 입력하여 메소드를 수동으로 호출 할 수 있어야합니다. 그런 다음 둘 다 비교하고 URL 경로가 정상인지 확인하십시오. –

답변

0

.NET 측에서 허용 설정으로 설정 했습니까?

[HttpPut] 
public JsonResult Update(int id) 
{ 
    return Json("Your Response"); 
} 
+0

[HttpPut] 부족으로 404 오류가 발생합니다. 맞습니까? –

+1

안녕 얘들 아, 네 도움에 많이 감사합니다! 내 문제를 발견, 그것은 내 구성, 많은 ppl 같은 문제가있는 것, 하나의 솔루션은 IIS에서 WebDav를 제거하는 것입니다,하지만이 하나는 내 경우에는 작동하지 않습니다. 다른 하나는 귀하의 서버에서 이러한 http 동사를 허용합니다, 내 사건에 대한 하나의 작품, 여기에 링크입니다! http://geekswithblogs.net/michelotti/archive/2011/05/28/resolve-404-in-iis-express-for-put-and-delete-verbs.aspx –

0

당신은 결코 하드 코드URL을 MVC에서해야한다.

대신 @Url.Action을 사용하십시오.

url: '@Url.Action("FunctionName", "ControllerName")', 

당신이 매개 변수를 전송하려면

는 실패 방법을 사용하여, 당신의 정신을 위해서, 또한
url: '@Url.Action("FunctionName", "ControllerName", new { ID = Model.MyID })', 

를 사용합니다.

$.ajax("http://url") 
    .done(function() { 
    alert("success"); 
}) 
    .fail(function() { 
    alert("error"); 
}) 

그래도 문제가 해결되지 않으면 어떤 종류의 오류가 발생했는지 알려주십시오.