前端传formdata数据 后端接收不到

前端使用formdata发送数据,包括图片,设置enctype为'multipart/form-data'。后端在SpringMVC中由于未配置CommonsMultipartResolver,导致数据接收为null。解决办法是在配置文件中添加相应配置。

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

关于前端传formdata数据 后端接收不到问题

//填写的信息提交到数据库
			submitFormFriuit = function(){
				var form =new FormData();
				form.append("fruit_id",$("#fruit_id").val().toString());
				form.append("fruit_type",$("#fruit_type").val().toString());
				form.append("fruit_name",$("#fruit_name").val().toString());
				form.append("fruit_amount",$("#fruit_amount").val().toString());
				form.append("fruit_price",$("#fruit_price").val().toString());
				form.append("fruit_enterprice",$("#fruit_enterprice").val().toString());
				form.append("fruit_sellprice",$("#fruit_sellprice").val().toString());
				form.append("fruit_place",$("#fruit_place").val().toString());
				form.append("fruit_place_f",$("input[name='ra']:checked").val().toString());

				form.append("fruit_states",$("#fruit_states").val().toString());
				form.append("fruit_time",$("#fruit_time").val().toString());
				form.append("fruit_date",$("#fruit_date").val().toString());
				form.append("fruit_info",$("#fruit_info").val().toString());
				//得到img的图片张数
				var ping=""
				var ps =$("#picss").find("img");
				//alert(ps.length+"lengths");
				ps.each(function(i){
					var s =$(this).prop("src");
					ping +=s.substr(s.lastIndexOf("/")+1,s.length)+"/";

				});
				form.append("picname",ping.toString());
				alert($("#fruit_enterprice").val().toString())
				$.ajax({
					processData: false,
					contentType: false,
					method:'post',
					url:'addFruit',
					datatype:'json',
					data: form,
					success:function(e){
						toastr.success("添加成功");
						window.location.href="addProduct?type=15";

					}
				});
			}

对于数据有没有传过去,我们可以通过按F12看传送的form-data是否有数据,我的是有的,但后端打印就是为null,因为我还要传送图片,所以我传送的enctype=“multipart/form-data”,当初我一直没有想到为啥,后面才发现我没有配置CommonsMultipartResolver。所以针对enctype为multipart/form-data 要看一下在springMVC中的配置文件是否配置这一项

<bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"></property>
    </bean>
为了实现Google Gmail注册功能,通常不会直接提供完整的源代码示例来创建Gmail账户。这是因为用户账户管理涉及敏感操作,应由官方服务处理以确保安全性和合规性。 然而,在开发与Gmail交互的应用程序时,可以利用OAuth 2.0协议授权流程来进行身份验证和访问控制[^3]。这允许第三方应用请求特定权限范围内的数据访问而无需知晓用户的密码。 对于希望集成Google登录或与其他Google服务互动的应用开发者来说,建议按照官方指南设置项目并启用必要的API接口: - 创建新的Google应用程序需前往Google API Console页面[^1]。 ```python import os from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = ['https://www.googleapis.com/auth/gmail.readonly'] def main(): """Shows basic usage of the Gmail API. Lists the user's Gmail labels. """ creds = None flow = InstalledAppFlow.from_client_secrets_file( 'credentials.json', SCOPES) creds = flow.run_local_server(port=0) service = build('gmail', 'v1', credentials=creds) results = service.users().labels().list(userId='me').execute() labels = results.get('labels', []) if not labels: print('No labels found.') else: print('Labels:') for label in labels: print(label['name']) if __name__ == '__main__': main() ``` 此Python脚本展示了如何通过OAuth 2.0认证过程连接到Gmail API,并列出当前用户的标签列表作为简单演示。请注意,实际部署前还需要考虑更多细节配置以及错误处理机制等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值