Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Ajax成功和错误回调永远不会被触发_Jquery_Ajax_Jsp_Servlets - Fatal编程技术网

Jquery Ajax成功和错误回调永远不会被触发

Jquery Ajax成功和错误回调永远不会被触发,jquery,ajax,jsp,servlets,Jquery,Ajax,Jsp,Servlets,我到处寻找答案,但毫无结果。我正在尝试使用ajax将图像上传到服务器,一旦图像上传完毕,服务器应该返回图像的路径,然后在屏幕上显示。上载工作正常,但由于从未触发成功(甚至没有错误)回调,因此我无法向用户显示上载的图像(因为我希望在成功回调中获得结果) JSP })) Servlet Map<String,String> multipartItems = null; if((multipartItems=processMultiformatData(request))=

我到处寻找答案,但毫无结果。我正在尝试使用ajax将图像上传到服务器,一旦图像上传完毕,服务器应该返回图像的路径,然后在屏幕上显示。上载工作正常,但由于从未触发成功(甚至没有错误)回调,因此我无法向用户显示上载的图像(因为我希望在成功回调中获得结果)

JSP

}))

Servlet

    Map<String,String> multipartItems = null;
    if((multipartItems=processMultiformatData(request))==null)
        return;

    String userImg = multipartItems.get("postImg");
    //response.setContentType("text/html");//tried this one too
    response.setContentType("text/plain");

    response.setStatus(HttpServletResponse.SC_OK);
    response.getWriter().write(userImg);
我确实在响应中获得了路径,但由于从未调用成功回调,因此无法在屏幕上显示它(作为img标记的一部分)

感谢您的帮助


编辑:当然,因为我知道要发送的图像的名称,并且服务器路径始终相同(路径+图像),所以如果其他所有操作都失败,我可以使用此信息显示图像。

最后一个片段不是响应。这是请求。虽然响应头也存在,但为True。响应内容仅为4-128[1].png.:)您能够解决此问题吗?没有,但我仍然可以为我的简单用例获得我想要的内容(因为我已经知道要上载哪个文件,所以我并不真正依赖服务器返回该文件)。
$(function(){
$(document).ready(function(){
  $('#uploadData').ajaxForm(
                  {

                    success: function(data,status,xhr) {
                    alert("...success uploading image..."+status);
                        var dataMessage = data.split('|');
                        var isError = dataMessage[0] == "true" ? true : false;
                        var errorMessage = dataMessage[1];
                        var imageUrl = dataMessage[2];
                        //this should display the image
                            $("#postContent").htmlarea("image", "${pageContext.request.contextPath}/img/"+imageUrl);                 
                    },
                    error: function(errorMsg){
                         alert("...error uploading image..."+errorMsg);

                    },

                }
            );  
            });
    Map<String,String> multipartItems = null;
    if((multipartItems=processMultiformatData(request))==null)
        return;

    String userImg = multipartItems.get("postImg");
    //response.setContentType("text/html");//tried this one too
    response.setContentType("text/plain");

    response.setStatus(HttpServletResponse.SC_OK);
    response.getWriter().write(userImg);
Request URL:http://localhost:8080/SomeSite/UploadPhoto
Request Method:POST
Status Code:200 OK
Remote Address:[::1]:8080
Response Headers
view source
Content-Length:12
Content-Type:text/plain
Date:Sun, 24 Jan 2016 12:46:56 GMT
Server:Apache-Coyote/1.1
Request Headers
view source 
 Accept:text/html,application/xhtml+xml,
application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Content-Length:2997
Content-Type:multipart/form-data; boundary=----       WebKitFormBoundaryBLLyr0fgnS47WfqA
Cookie:JSESSIONID=03BC5363F392EB58FB043B87B5289733
Chrome/47.0.2526.111 Safari/537.36
Request Payload
------WebKitFormBoundaryBLLyr0fgnS47WfqA
Content-Disposition: form-data; name="postImg"; filename="4-128[1].png"
Content-Type: image/png