作者:吖鸟集团总公司 | 来源:互联网 | 2023-09-16 06:24
我使用以下代码成功发布到我的控制器,但是,成功永远不会被命中只有错误。我究竟做错了什么?JS:$.ajax({url:'HomeSubscribe',type:
我使用以下代码成功发布到我的控制器,但是,成功永远不会被命中只有错误。 我究竟做错了什么?
JS:
$.ajax({ url: '/Home/Subscribe', type: 'POST', dataType: 'json', data: { email: $('#sube').val() }, success: function (data) { // get the result and do some magic with it alert(data.foo); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus); } });
控制器:
[HttpPost] public JsonResult Subscribe(string email) { return Json(new { foo = "bar", baz = "Blech" }); }
在IE中,按F12打开开发人员工具。 转到“网络”选项卡,然后单击“启动Profiler”。 向您的订阅操作发送请求 – 在下面的列表中,您将看到已发送请求和返回状态代码的详细信息。 双击请求查看详细信息 – 然后您可以查看响应的正文。 如果请求因服务器错误而失败,您将在响应正文中看到该错误。
我看到你的代码有一个错误的地方就是你已经硬编码了url:
url: '/Home/Subscribe'
你永远不应该这样做。 在ASP.NET MVC应用程序中生成URL时,应始终使用URL帮助程序:
url: '@Url.Action("Subscribe", "Home")'
此外,您说错误回调总是被命中,但是当您尝试分析AJAX请求时,您没有说出您在FireBug或Chrome Developer工具栏中观察到的内容。 如果你这样做了,你就会看到请求失败的确切原因,因为你会看到发送给服务器的请求以及服务器发送回客户端的响应。
以下是我的jQuery ajax片段。 你的控制器看起来正确 我假设您已经validation它实际上是通过使用断点调用的。
需要了解更多jQuery教程分享从控制器返回Json,从未成功,都可以关注jQuery技术分享栏目—编程笔记
var p = { email: $('#sube').val() }; $.ajax({ url: '@Url.Action("Subscribe", "Home")' type: 'POST', data: JSON.stringify(p), dataType: "text json", contentType: "application/json", success: function (data) { // get the result and do some magic with it alert(data.foo); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus); } });
以上就是jQuery教程分享从控制器返回Json,从未成功相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注(编程笔记)。