首页 >

上传文件返回的json数据会被提示下载问题解决方案【javascript】

web前端|js教程上传文件返回的json数据会被提示下载问题解决方案【javascript】
json数据,提示下载
web前端-js教程
最近项目中出现上传文件返回的json数据会被提示下载,只有在ie10+中才会出现这个问题。前端使用jQuery的插件ajaxForm提交表单,后台返回的数据格式为json。代码如下:
免费源码源码下载,ubuntu登录日志审计,tomcat项目域名解析,头条开源爬虫,php网页制作的步骤,seo 月入lzw
后端Python:
php源码论文,保留文件安装ubuntu,爬虫调用网站API,php zuotian,url转发seolzw
def jsonp(func):
"""Wraps JSONified output for JSONP requests."""
@wraps(func)
def decorated_function(*args, **kwargs):
callback = request.args.get('callback', False)
temp_content = func(*args, **kwargs)
if isinstance(temp_content, dict):
temp_content.setdefault('success', True)
temp_content.setdefault('code', 200)
try:
temp_content = json.dumps(temp_content, indent=4)
except UnicodeDecodeError:
try:
temp_content = ujson.dumps(temp_content)
except StandardError as e:
logger.exception(e)
temp_content = json.dumps({'success': False, 'code': 500, 'info': 'INVALID_CONTENT'})
temp_content = cgi.escape(temp_content)
if callback:
# 依据 http://evilcos.me/?p=425,jsonp添加/**/头部会安全一些
content = '/**/' + str(callback) + '(' + temp_content + ')'
mimetype = 'application/javascript'
headers = {'charset':'utf-8'}
return current_app.response_class(content, mimetype=mimetype,headers=headers)
else:
mimetype = 'application/json'
headers = {'charset':'utf-8'}
content = temp_content
return current_app.response_class(content, mimetype=mimetype,headers=headers)
elif isinstance(temp_content, basestring):
temp_content = cgi.escape(temp_content)
return temp_content
else:
return temp_content
return decorated_function
@mod.route('/patch/install.json', methods=['POST'])
@jsonp
def patch_install():
return {'data': 'data'}
公司转让交易网站源码,vscode统计代码行号,ubuntu木马制作,手动起tomcat,高并发用sqlite3,一个定制爬虫多少钱,卡密生成 php,提高原创率seo,在线背单词网站源码,装饰公司网页模板,网站订单系统模板lzw
前端js代码:

$('#form').ajaxSubmit({
url : '/patch/install.json',
type : 'post',
dataType : 'json',
iframe : true,
success: function(res) {
// code
}
});

解决办法:
需要将后端返回的数据格式改成text/html格式的,如下:

def plain(func):
"""wrap text/html reponse"""
@wraps(func)
def _inner(*args, **kwargs):
resp = func(*args, **kwargs)
if isinstance(resp, dict):
resp.setdefault('success', True)
resp.setdefault('code', 200)
resp = json.dumps(resp)
resp = cgi.escape(resp)
return current_app.response_class(resp, mimetype='text/html', headers={'charset': 'utf-8'})
elif isinstance(resp, basestring):
resp = cgi.escape(resp)
return current_app.response_class(resp, mimetype='text/html', headers={'charset': 'utf-8'})
else:
return resp
return _inner
@mod.route('/patch/install.json', methods=['POST'])
@plain
def patch_install():
return {'data': 'data'}

注意:此例后端是用Python,如果项目中遇到同样问题,改成对应语言

总结,其实解决这个问题,简单的说就一句话“将后端返回的数据格式改成text/html格式的”


上传文件返回的json数据会被提示下载问题解决方案【javascript】
  • Python爬取Json数据的示例
  • Python爬取Json数据的示例 | Python爬取Json数据的示例 ...

    上传文件返回的json数据会被提示下载问题解决方案【javascript】
  • php获取json数据所有的节点路径【PHP】
  • php获取json数据所有的节点路径【PHP】 | php获取json数据所有的节点路径【PHP】 ...

    上传文件返回的json数据会被提示下载问题解决方案【javascript】
  • jquery序列化form表单使用ajax提交后处理返回的json数据【jquery】
  • jquery序列化form表单使用ajax提交后处理返回的json数据【jquery】 | jquery序列化form表单使用ajax提交后处理返回的json数据【jquery】 ...