现在我的ajax帖子都会触发他们的错误事件,即使该操作没有引起错误。我有一个ASP.NET MVC动作,看起来像:
[AcceptVerbs(HttpVerbs.Post)] public virtual ActionResult StuffToDo(int id) { // do varIoUs things that work ... return new JsonResult(); // i have to return something,so this... }
在客户端我有这个jQuery:
$('#actionClick').click(function() { if (confirm('Are you sure?')) { $.ajax({ type: "POST",url: "/Customer/StuffToDo/<%= Model.Customer.Id %>",contentType: "application/json; charset=utf-8",data: "{}",dataType: "json",success: function() { ShowSuccessResult("Yay!"); },error: function(xhr,ajaxOptions,thrownError) { ShowErrorResult("Boo! Message:" + xhr.responseText); } }); } return false; });
如果操作成功(没有异常抛出),那么我会期望触发成功事件处理程序。相反,错误事件正在触发。有什么我应该回传或改变行动,以便成功事件发生?
我意识到这个问题基本上和this other question一样,但是我的错误处理程序已经有了扩展的签名来解决对方的问题。
编辑
根据请求,这里是我得到的答复:
Link to the screen shot(不知道该怎么显示)
编辑
我将返回值更改为Null,以查看是否影响任何内容,但不会改变任何行为。
编辑
它开始看起来像这是HTTPS的问题。我得到了来自请求的多个响应。前2个是401个消息,然后我得到一个200。
解决方法
我相信问题是你没有在JsonResult中返回任何东西。尝试:
return this.Json(string.Empty);
看看是否有效。我认为问题是你没有返回到jQuery调用,而不是一个空的JSON集:
{}