问题:使用jquery.form.js实现ajax上传文件功能,当服务端返回json格式的字符串,并且头信息是application/json时,客户端代码success回调函数无法执行。
原因:由于jquery.form.js在实现ajax上传文件时采用了iframe的实现方式,因此客户端在接收text或html格式的结果时没有问题。但是当客户端接收json格式时,就产生了问题。
解决方案:jquery.form.js官方推荐这种情况下服务端需要做些事情,输出如下格式的json代码
<textarea>
{"a1":"a1","b1":"b1"}
</textarea>
或者,直接输出json格式的字符串,但是头信息仍然使用plain/text。
参考:http://jquery.malsup.com/form/#file-upload
原因:由于jquery.form.js在实现ajax上传文件时采用了iframe的实现方式,因此客户端在接收text或html格式的结果时没有问题。但是当客户端接收json格式时,就产生了问题。
解决方案:jquery.form.js官方推荐这种情况下服务端需要做些事情,输出如下格式的json代码
<textarea>
{"a1":"a1","b1":"b1"}
</textarea>
或者,直接输出json格式的字符串,但是头信息仍然使用plain/text。
参考:http://jquery.malsup.com/form/#file-upload