从 Javascript 调用 PUT 方法
Posted
技术标签:
【中文标题】从 Javascript 调用 PUT 方法【英文标题】:Calling PUT method from Javascript 【发布时间】:2015-08-18 02:49:22 【问题描述】:我正在尝试从 javascript 调用我的 C# Web API,但数据似乎没有正确传递。我拥有的 GET 方法工作得非常好,但我似乎无法让 PUT 按我的意图工作。这是结构:
Javascript:
$.ajax(
type: "PUT",
url: "/api/FTP",
data: "Hello World"
)
C# Web API:
public class FTPController : ApiController
// GET: api/FTP
public IHttpActionResult Get()
// PUT: api/FTP
public void Put([FromBody] string data)
如果我需要提供更多信息,请告诉我。感谢您的帮助。
【问题讨论】:
客户端和服务器应用程序是否在同一个域中?我自己曾经遇到过这个问题,但从来没有机会解决这个问题。不过,这里有一个很好的资源:@987654321@ 是的,两者都刚刚从我的本地计算机上运行。就像我说的,GET 工作正常。 HTTP ERROR 405 是“不允许的方法”,因此可能必须将 IIS 或应用程序配置为接受 PUT。这可能是配置错误,您的代码似乎没有任何问题。 @pid 那么我该如何解决这个问题呢? 您可以更改 IIS 设置以允许这样做:***.com/questions/6739124/… 【参考方案1】:尝试数据:'':'Hello World'
它将生成 =HelloWorld 作为表单数据,这是 [FromBody] 所期望的,我相信在这种情况下。
【讨论】:
【参考方案2】:$.ajax(
type: "PUT", //HTTP VERB
url: "/api/FTP", //URL
dataType: 'json', //What type of response you expect back from the server
contentType: 'text/plain', //What type of data you are trying to send
data: "Hello World"
)
【讨论】:
设置 contentType 实际上会导致 415 错误。 额外的解释会改善你的答案。以上是关于从 Javascript 调用 PUT 方法的主要内容,如果未能解决你的问题,请参考以下文章
MailChimp:为啥带有 javascript 的 PUT 方法返回“使用 PUT 插入或更新列表成员”