2013-09-21 119 views
0

这是调用ajax发布我的表单。JQuery没有成功返回

<script type="text/javascript"> 

    $(function() { 
     $("#GetReport").click(function() {    
      var d = {input:$("#frm").serialize()};     
      $.ajax({ 
       type: 'POST', 
       url: '/Questions/Answer', 
       data: JSON.stringify(d), 
       dataType: "json", 
       contentType: "application/json", 
       success: function (result) { 
        alert(result); 
       } 
      }); 
     }); 
    }); 

</script> 

,这是我的行动

[HttpPost] 
public ActionResult Answer(string input) 
{ 
    return Content("Success"); 
} 

当我按下相关按钮,动作被调用,但是当值的回报,我希望要显示一个警告说“成功”,但我得到尽管我的行动被召集,但没有任何事

+1

如何将这项改变输出?我的行动正在受到打击,我能够获取表单数据。这只是我感到困惑的返回声明。 – Farax

+0

你是否从你的'.asmx'试过了这个。如果它从.asmx文件运行,然后检查控制台是否有错误,很容易发现错误。 – Praveen

+1

删除'dataType:“json”,' – Musa

回答

4

尝试dataType: "text",因为你似乎是返回一个普通字符串(是不是在JSON格式),并dataType指定的预期响应格式,而不是请求格式。 (或者只是删除dataType选项,在这种情况下,jQuery将做出自己最好的猜测在什么响应格式是一旦看到它。)

+0

但我没有得到的是为什么会有返回类型为JSON,将我重定向到其他地方而不是在同一视图中的警报权显示的东西? – Farax

+1

由于'dataType:“json”'告诉jQuery你期望响应是JSON,所以当你的响应是_not_ JSON时,请求根据定义失败了,所以你的'success'处理程序没有被调用。如果你添加一个错误处理程序,它应该被调用。 – nnnnnn

+0

明白了。非常感谢! – Farax

0
[HttpPost] 
    public ActionResult Answer(string input) 
    { 
     return Json("Success", JsonRequestBehavior.AllowGet); 
    }