jquery.form上传文件,不执行seccess函数,接收不到返回的json的解决办法

本文介绍如何利用jQuery的ajaxForm方法实现文件上传功能,并通过一个具体的示例展示了如何配置前端表单及后端Action来确保正确的数据交互。此外,还讨论了如何处理上传过程中的反馈信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js代码

 

$(function() {
	//初始化ajaxForm
	$('#upForm').ajaxForm({
		dataType:'text', 
		type:'POST',
		clearForm:true, // clear all form fields after successful submit
		resetForm:true, // reset the form after successful submit
		beforeSubmit:check,
	    	success:function(data) {
	    		alert(data);
	    	}
	});
	function check(formData, jqForm, options) { 
		//加入一些自定义的验证
		//返回false阻止可以表单提交
	}
});

返回json接收不到,将dataType设置为text

 html

 

<form id="upForm" method="POST" enctype="MULTIPART/FORM-DATA" action="saveCommanInfo.action" target="hidden_frame">
	<iframe name='hidden_frame' id="hidden_frame" style='display: none'></iframe>
	<input name="name" id="name"/>
	<input type="file" name="photo" id="photo"/>
	<input type="submit" value="提交表单"/>
</form>

 Action

 

public String save() throws Exception {
	//处理上传
	try {
		..........
		String ajaxResult="上传成功!";
		//将提示信息返回前台
		response.setContentType("text/html; charset=utf-8");
		response.setHeader("Cache-Control", "no-cache");
		PrintWriter out = response.getWriter();
		out.write("<script>alert('"+ajaxResult+"')</script>");
		out.flush();
		out.close();
	} catch (Exception e) {
		e.printStackTrace();
		throw new GlobalException(e);
	}
	// 不做跳转,返回none,返回null也可以
	return NONE;
}

 Action配置

 

<package name="system" extends="json-default">
	<action name="save" class="systemAction" method="save">
		<result type="json">
		  <!-- 返回html文本 -->
		  <param name="contentType">text/html</param>
		  <!-- 返回的提示信息 -->
		  <param name="root">ajaxResult</param>
		</result>
	</action>
</package>

 注意要继承json-default,页面上要引入jquery和jquery.form

 

以下是一个使用Python的XPath爬虫的实例: ```python import requests from lxml import etree if __name__ == '__main__': url = 'https://pic.netbian.com/4kmeinv/' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36' } page_text = requests.get(url=url, headers=headers).text tree = etree.HTML(page_text) li_list = tree.xpath('//div[@class="slist"]/ul/li/a') if not os.path.exists('./piclibs'): os.mkdir('./piclibs') for li in li_list: detail_url = 'https://pic.netbian.com' + li.xpath('./img/@src')[0] detail_name = li.xpath('./img/@alt')[0 + '.jpg' detail_name = detail_name.encode('iso-8859-1').decode('GBK') detail_path = './piclibs/' + detail_name detail_data = requests.get(url=detail_url, headers=headers).content with open(detail_path, 'wb') as fp: fp.write(detail_data) print(detail_name, 'seccess!!') ``` 这个爬虫实例通过发送网络请求获取页面源码,然后使用lxml库中的etree模块将页面源码转化为可解析的HTML树对象。之后,使用XPath语法来提取页面中的数据,例如获取图片的URL和名称。最后,将图片保存到本地文件夹。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [四个Python爬虫案例,带你掌握xpath数据解析方法!](https://blog.csdn.net/lyc2016012170/article/details/124507352)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python中的xpath爬虫实例,新人处女作!!!](https://blog.csdn.net/Musica_l/article/details/120021669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值