前言
這個問題是我在用ajax做文件上傳時遇到的,朋友也遇到這種情況,在這里總結一下
分析
Failed to load resource: the server responded with a status of 400 (Bad Request) 是錯誤請求的報錯
出現這種錯誤一般情況是:
1.前端的參數類型和后端的參數類型不匹配,比如前端string 類型,后端是date類型
<input type="date" id="bornDay" name="bornDay"/> //這里是date控件,但是實際數據類型是string,而且格式是yyyy-MM-dd(可以alert一下值和值得類型檢驗)
private Date bornDay; //這里是后端用於接收信息的實體類的屬性,這里是Date類型
解決:在給Date 類型的數據加注解
@DateTimeFormat(pattern = "yyyy-MM-dd") private Date bornDay;
如果還是沒有解決,需要查看一下SpringMVC的配置文件中是否加入掃描注解的配置,還要指定掃描的包路徑
<!-- 方式一過時的掃描注解配置 不建議使用,這兩個配置可能因為版本問題沒有起到效果,導致沒有掃描到注解 -->
<!--<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> -->
<!-- 方式二掃描注解的配置(建議使用) --> <mvc:annotation-driven/>
2.前端的控件的name屬性和后端接收的參數名稱不匹配,比如下面的image和image123,還有接收信息實體類的字段名也需要與前端控件的name屬性一致
<input type="file" class="fileinp" name="image"/>
public String register(User user, @RequestParam("image123") CommonsMultipartFile file, HttpSession session)
解決:將兩個名稱改一致
