gpt4 book ai didi

javascript - Ajax 调用获取后期情报

转载 作者:行者123 更新时间:2023-11-28 01:58:12 25 4
gpt4 key购买 nike

今天我看到了一件可怕又有趣的事情。请查看对 Web api post 方法的 ajax 调用。

   $.ajax({
url: 'api/AccountAPI/GetByNickName',
type: 'POST',
data: JSON.stringify({ ConnectedUserNickName: key }),
dataType: "json",
contentType: "application/json; charset=utf-8",
async: true,
success: function (data) {
alert('successful');
},
error: function (err) {
alert('error');
}
});

出现错误:“无法加载资源:服务器响应状态为 405(方法不允许)”。此 ajax 调用不会调用服务器端的“GetByNickName”方法。

如果我将方法名称更改为“checkNickName”或其他任何名称,那么它就可以正常工作。我看起来很有趣。谁能告诉我这里发生了什么。

   $.ajax({
url: 'api/AccountAPI/CheckNickName',
type: 'POST',
data: JSON.stringify({ ConnectedUserNickName: key }),
dataType: "json",
contentType: "application/json; charset=utf-8",
async: true,
success: function (data) {
alert('successful');
},
error: function (err) {
alert('error');
}
});

当我注意到由于方法名称“GetByNickName”而发生错误时,我认为 ajax post/get 方法名称中可能有一些智能。那么,真正的原因是什么??

最佳答案

在 ASP.NET 中,Web API 框架 默认情况下根据请求的 HTTP 动词 将传入请求映射到适当的操作。

因此,如果您指定 GetByNickName 这对应于 HTTP 动词 GET,而 CheckNickName 不对应于任何 HTTP 动词,因此它适用于您的情况。

举个例子,假设您在 AccountAPI 中有一个操作

public void Get(int id)

您的 URI 将如下所示 api/AccountAPI/{id}

有关更多详细信息,请阅读 routingaction selection文档并检查 sample application

关于javascript - Ajax 调用获取后期情报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com