Javascript 如何使用XmlHttpRequest和asp.net mvc处理文件上传错误?

Javascript 如何使用XmlHttpRequest和asp.net mvc处理文件上传错误?,javascript,ajax,asp.net-mvc,upload,Javascript,Ajax,Asp.net Mvc,Upload,为简单起见: 客户: var xrh = new XmlHttpRequest(); ... xrh.onerror = on_upload_error; xrh.send(...) 服务器: public class file_transfer { [HttpPost] public void Upload(HttpPostedFileBase[] files_to_upload) { ... if (succeeded)

为简单起见:

客户:

var xrh = new XmlHttpRequest();
...
xrh.onerror = on_upload_error;
xrh.send(...)
服务器:

public class file_transfer
{
    [HttpPost]
    public void Upload(HttpPostedFileBase[] files_to_upload)
    {
        ...
        if (succeeded)
        {
            // what should I to to let the client know the success? in onload
        }
        else
        {
            // what should I to to let the client know the failaure? maybe in onerror
        }
    }
}
我应该如何让客户知道成功?有货吗


我应该如何让客户知道失败原因?也许在OneError?

中,您可以将http成功/失败代码返回到客户端:

[HttpPost]
public ActionResult Upload(HttpPostedFileBase[] files_to_upload)
{
    ...
    if (succeeded)
    {
        return new HttpStatusCodeResult(200);
    }
    else
    {
        return new HttpStatusCodeResult(400);
    }
}

您需要遵循asp.net mvc约定,控制器类必须以“controller”结尾。例如AccountControllerd这些json结果是否绑定到XmlHttpRequest中的onerror和onload?是的,应该是UploadController(…)而不是Upload(…)。如果要绑定onerror和onload,json结果是正确的。在这种情况下,当成功返回2xx代码时,当失败返回4xx或5xx代码时,您可以使用HttpStatusCodeReusElt谢谢。我希望看到错误消息,因此希望返回一个JsonResult,但是如何在客户端获取JsonResult呢?已调用on on_load(evt),但未定义evt.status。