【问题标题】:How to return data from controller method to a jquery ajax post如何将数据从控制器方法返回到 jquery ajax post
【发布时间】:2014-12-19 16:24:16
【问题描述】:

我的 Jquery ajax 调用 -

         var formdata = $('#emailrequest').serializeArray();

          // Ajax call to server
          $.ajax({
              url: sitePath + 'supply-chain-pressure/ProcessEmailrequest',
              type: 'POST',
              data: formdata,
              sucess: function(data) {
                  alert(data.sucess);
              },
              error: function() {
                  alert('error');
              }
              });//End Ajax

我的控制器 -

    public ActionResult ProcessEmailrequest()
            {

              // some code

            // retun the response 
            return Json(new {success = true});

但得到的只是 alert 中的错误。我哪里错了?请帮忙 。我只需要从控制器返回一个确认,无论是任何格式。

【问题讨论】:

  • 你得到的错误是什么?
  • 将您的错误处理函数更改为:error: function(xhr, status, error) { var err = eval("(" + xhr.responseText + ")"); alert(err.Message); },这样您就可以获得有意义的错误。
  • 在浏览器控制台的网络选项卡中检查实际请求。如果没有有意义的故障排除信息,没有人可以在没有大量猜测工作的情况下为您提供帮助
  • 如果你得到一个错误很可能是你的控制器抛出了一个异常。调试你的代码!

标签: javascript jquery ajax asp.net-mvc


【解决方案1】:

你拼错了success,所以它永远不会命中。它应该与 ActionResult 一起使用,但 JsonResult 更好。

         var formdata = $('#emailrequest').serializeArray();

      // Ajax call to server
      $.ajax({
          url: sitePath + 'supply-chain-pressure/ProcessEmailrequest',
          type: 'POST',
          data: formdata,
          success: function(data) {
              alert(data.sucess);
          },
          error: function() {
              alert('error');
          }
          });//End Ajax

【讨论】:

    【解决方案2】:

    尝试将你的控制器方法返回类型设置为JsonResult而不是ActionResult,所以:

     public JsonResult ProcessEmailrequest()
     {
         // some code
    
         // retun the response 
         return Json(new {success = true});
     }
    

    如果这无助于将您的 ajax 错误函数设置为接收以下参数:

     error: function (xhr, ajaxOptions, thrownError) {
          ...
     }
    

    然后在浏览器中调试并为错误函数设置断点,在 xhr 对象(responseText 属性)中,您将能够看到确切的错误。

    【讨论】:

      猜你喜欢
      • 2017-12-23
      • 2016-07-09
      • 2018-04-07
      • 1970-01-01
      • 2020-11-12
      • 2012-10-20
      • 2021-10-09
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多