问题出现在插件:
$.ajaxFileUpload{
type:post,
url:url,
secureuri:false,
fileElementId:'file',//file为input标签ID
dataType:'text',//手动设置成text
success:function(data, status)
{
var jsonOut = eval('('+ data +')');
imgPath = jsonOut.localPath;
imgSize = jsonOut.picSize;
headImg.src = imgPath;
console.log(data)
},
error:function(data,status,e){
}
}
在后台响应结果response.getWriter.write("{\"result\":\"success\"}");
页面会打印出
{“data”:“success”}
表示请求成功!
不知道为何返回结果会有
,我也不是很清楚,不过可在插件中加以下代码进行处理:
uploadHttpData: function( r, type ) {
var data = !type;
data = type == "xml" || data ? r.responseXML : r.responseText;
// If the type is "script", eval it in global context
if ( type == "script" )
jQuery.globalEval( data );
// Get the JavaScript object, if JSON is used.
if ( type == "json" ){
以下为新增代码///
data = r.responseText;
var start = data.indexOf(">");
if(start != -1) {
var end = data.indexOf("
if(end != -1) {
data = data.substring(start + 1, end);
}
}
///以上为新增代码///
// eval( "data = " + data);
// evaluate scripts within html
}
if ( type == "html" )
jQuery("
//alert($('param', data).each(function(){alert($(this).attr('value'));}));
return data;
}
上传图片若要返回图片路径问题:在后台最后将路径\转换成/,‘\’ = ‘\\\\’,然后使用aval('('+data+')')将String类型转换成json格式并取得数据data.data = success.