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