JSON data POST to Web API 在 Fiddler 中工作,但 JQuery AJAX 出现“未找到

本文关键字:出现 AJAX JQuery 未找到 工作 to POST data Web API Fiddler | 更新日期: 2023-09-27 18:36:41

我的东西在提琴手上工作得很好,我得到了想要的结果。但是当我通过JQuery AJAx在网页上执行此操作时,它说"未找到"。我从某个时候开始挣扎,但无法绕过。

我的控制器方法像这样

[Route("AddDonors/")]
[HttpPost]
public dynamic addDonors(localDonor localDonor)
{
            return localDonor;
}

这就是我从网页调用的方式

 var userInput = { 'FullName': 'Lakshman', 'Mobile': '9924210053' };

            $.ajax({
                type: "POST",
                url: "/AddDonors",
                data:  userInput,
                error: function (result) {
                    alert(result);
                },
                datatype: "json"
            });

这是模型类

 public class localDonor
    {
        public String FullName { get; set; }
        public String Mobile { get; set; }

    }

API 注册和其他设置很好,因为这在小提琴手中有效

请帮忙。谢谢。

JSON data POST to Web API 在 Fiddler 中工作,但 JQuery AJAX 出现“未找到

我强烈怀疑您的 AJAX 请求中的 url 是罪魁祸首(404 - 未找到)请求无法路由到控制器进行处理。

不知道您的完整控制器是什么样子的,如果您在这个特定控制器上有RoutePrefixAttribute,我就不能说 url 应该是什么。

我建议您在浏览器开发人员工具中监控网络流量(按 F12),并将失败的 POST 请求的请求 URL 与 Fiddler 中成功请求的请求 URL 进行比较

如果你的网页是作为同一 Web 项目的一部分在 MVC ASP.Net 中创建的,则可能需要在将来生成 url 服务器端,请参阅在视图中构造具有属性路由的 Web API 的 url。@Url帮助程序仅在您的 .cshtml 文件中可用,因此您无法将 JavaScript 代码转移到单独的.js文件中。

我能够通过将 url 更改为 url: "AddDonors", 来解决问题

尝试放置 [WebMethod] 属性。

[Route("AddDonors/")]
[HttpPost]
[WebMethod]
public dynamic addDonors(localDonor localDonor)
{
            return localDonor;
}

希望这有效!

试试你的开机自检数据

var userInput = JSON.stringify({ 'FullName': 'Lakshman', 'Mobile': '9924210053' }),

我遇到了同样的错误。

在使用 ASP.NET 时,请尝试使用 @Url.Action 帮助程序进行所有 AJAX 调用。
我不知道为什么,但在某些情况下,ASP.NET 将 URL 作为字符串传递不起作用。
并尝试像下面的
代码一样传递数据 修改后的代码应如下所示:

$.ajax({
                type: "POST",
                url: "@Url.Action("AddDonors", "ControllerName")",
                data:  { localDonor: userInput },
                error: function (result) {
                    alert(result);
                },
                datatype: "json"
            });