2017-05-09 90 views
0

在我的编辑页面上,我使用了api控制器。

这里是我的$。阿贾克斯:

var settings = {}; 
settings.baseUri = '@Request.ApplicationPath'; 
var infoGetUrl = ""; 
if (settings.baseUri === "/ServerProjectName") { 
    infoGetUrl = settings.baseUri + "/api/controllerName/"; 
} else { 
    infoGetUrl = settings.baseUri + "api/controllerName/"; 
} 

$("#Edit-Btn").on("click", 
    function(e) { 
     $("form").validate({ 
      submitHandler: function() { 
       e.preventDefault(); 

       $.ajax({ 
        method: "PUT", 
        url: infoGetUrl, 
        data: $("form").serialize(), 
        success: function(data) { 
         toastr.options = { 
          onHidden: function() { 
           window.location.href = newUrl; 
          }, 
          timeOut: 3000 
         } 
         toastr.success("Successfully edited."); 
        }, 
        error: function (jqXHR, textStatus, errorThrown) { 
         var status = capitalizeFirstLetter(textStatus); 

         toastr.error(status + " - " + jqXHR.responseText); 
        } 
       }); 
      } 
     }); 
    }); 

下面这个方法是“删除”另一个AJAX功能和完美的作品。只有PUT方法给我这个错误。

当我提出,我收到一个错误说:

所请求的资源不支持HTTP方法“把”

我已经看过this但并不完全理解。我使用IE 11,所以我认为应该支持。

任何想法或帮助,非常感谢。

enter image description here

回答

1

你得到这个消息的原因是,你试图使用不支持HTTP PUT方法的API。

通常情况下,如果您使用的是web api 2.0,那么如果它支持PUT,那么您将在Web方法上具有[HttpPut]的属性。还有其他方法可以标记API以支持Put,但通常不会使用。

确认您的API是最常见的方法是使用Postman尝试使用API​​,并且可以消除您使用JavaScript时可能遇到的任何问题。

+0

我现在正在邮递员测试,它正在工作。我正在通过邮递员编辑一个房产,然后刷新我的页面,并且该房产是我编辑它的值 –

+0

您确定要选择投入邮递员吗?你能用邮递员的截图更新问题吗? – Avitus

+0

更新的问题 –