繁体   English   中英

JSON数据发布到Web API可以在Fiddler中使用,但JQuery AJAX出现“未找到”错误

[英]JSON data POST to Web API works in Fiddler but “Not Found” error from JQuery AJAX

我的东西在Fiddler上工作正常,我得到了预期的结果。 但是,当我通过JQuery AJAx在网页上执行此操作时,它显示为“未找到”。 从某个时候开始我一直在挣扎,但无法绕开。

我的Controller方法就是这样

[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注册和其他设置就可以了,因为它可以在fiddler中使用

请帮忙。 谢谢。

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

不知道完整的控制器是什么样子,并且如果您在此特定的控制器上具有RoutePrefixAttribute ,我将无法说出网址应该是什么。

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

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

我可以通过将网址更改为以下网址来解决此问题url: "AddDonors",

尝试放置[WebMethod]属性。

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

            return localDonor;
}

希望这有效!

尝试此操作以获取POST数据

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"
            });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM