- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在 Ajax 请求上收到 400 Bad Request。我不知道这会出什么问题。我正在使用:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.0.5.RELEASE</version> </dependency>
Controller :
@Controller("bookController")
@RequestMapping("/book")
public class BookControllerImpl implements BookController {
@Autowired
BookService bookService;
@Override
@RequestMapping(value = "/new", method = RequestMethod.GET)
public String addBookToSystem(Model model) {
model.addAttribute("book", new Book());
return "book/newBook";
}
@Override
@RequestMapping(value = "/new", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Book addBookToSystem(@RequestBody Book book) {
book.setBookStatus(BookStatus.AWAITING);
return bookService.get(bookService.save(book));
}
Ajax 调用:
$(document).ready(function(){
$('#addBook').submit(function(event) {
var ISBN = $('#ISBN').val();
var author = $('#author').val();
var description = $('#description').val();
var pages = $('#pages').val();
var publicationYear = $('#publicationYear').val();
var publisher = $('#publisher').val();
var title = $('#title').val();
var json = { "ISBN" : ISBN, "author" : author, "description" : description, "pages" : pages, "publicationYear" : publicationYear, "publisher" : publisher, "title" : title };
$.ajax({
url: $("#addBook").attr("action"),
data: JSON.stringify(json),
type: "POST",
dataType: 'json',
contentType: 'application/json',
success: function(book) {
var respContent = "";
respContent += "<span class='success'>Dodano ";
respContent += book.title;
respContent += " do listy ksiazek oczekujacych na zatwierdzenie!</span>";
$("#bookResponse").html(respContent);
}
});
event.preventDefault();
});
});
HTTP 请求:
POST /ksiazka/book/new.json HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 100
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://localhost:8080
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
Content-Type: application/json
Referer: http://localhost:8080/ksiazka/book/new
Accept-Encoding: gzip,deflate
Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4,pt;q=0.2
Cookie: SPRING_SECURITY_REMEMBER_ME_COOKIE=bWFjaWVqbWlzMkBnbWFpbC5jb206MTQxNzUzODc3ODU4NjpjYjY3YTZiMWYyMGJjODYyMDYxMDQyNDIyN2NmNjQ3Mg; JSESSIONID=c5a72acb3bd1a165f9c2d705a199
回应:
HTTP/1.1 400 Bad Request
Server: GlassFish Server Open Source Edition 4.1
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1 Java/Oracle Corporation/1.8)
Content-Language:
Content-Type: text/html
Date: Tue, 04 Nov 2014 19:49:08 GMT
Connection: close
Content-Length: 1105
有什么想法可以解决这个问题吗?作为基础,我使用 this教程。我搜索并阅读了大多数带有 400 Bad Request 错误的线程,但这并没有解决我的问题。
编辑:图书类别:
@Entity
@Table(name="Book")
@Indexed
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "bookId")
private Long id;
@Column(nullable = false)
@Field(index = Index.YES, analyze=Analyze.YES, store=Store.NO)
private String title;
@Column(nullable = false, unique = true)
private String ISBN;
@Column(nullable = false)
@Field(index = Index.YES, analyze=Analyze.YES, store=Store.NO)
private String author;
private String publisher;
@Column(length = 1000)
private String description;
private int publicationYear;
private int pages;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private BookStatus bookStatus;
@ManyToMany(mappedBy = "booksWant", cascade = CascadeType.ALL)
private List<User> user = new ArrayList<User>(0);
@OneToMany(mappedBy = "book", cascade = CascadeType.ALL)
private List<UserBook> bookList = new ArrayList<UserBook>(0);
public Book(String title, String ISBN, String author, String publisher, String description,
int publicationYear, int pages, BookStatus bookStatus) {
this.title = title;
this.ISBN = ISBN;
this.author = author;
this.publisher = publisher;
this.description = description;
this.publicationYear = publicationYear;
this.pages = pages;
this.bookStatus = bookStatus;
}
getters and setters
}
编辑2:
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="sf" %>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
<%@page language="Java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<tiles:insertDefinition name="template">
<tiles:putAttribute name="content">
<h2>book/newBook.jsp</h2>
<div id="bookResponse">
</div>
<div>
Add a book to system:
</div>
<div>
<sf:form id="addBook" action="${pageContext.request.contextPath}/book/new" modelAttribute="book">
<table>
<tr>
<td><label>isbn: </label></td>
<td><sf:input path="ISBN" id="ISBN" /></td>
<td><sf:errors path="ISBN" cssClas="error" /></td>
</tr>
<tr>
<td><label>Autor: </label></td>
<td><sf:input path="author" id="author" /></td>
<td><sf:errors path="author" cssClas="error" /></td>
</tr>
<tr>
<td><label>Tytul: </label></td>
<td><sf:input path="title" id="title" /></td>
<td><sf:errors path="title" cssClas="error" /></td>
</tr>
<tr>
<td><label>Opis: </label></td>
<td><sf:textarea path="description" id="description" /></td>
<td><sf:errors path="description" cssClas="error" /></td>
</tr>
<tr>
<td><label>Ilosc stron: </label></td>
<td><sf:input path="pages" id="pages" /></td>
<td><sf:errors path="pages" cssClas="error" /></td>
</tr>
<tr>
<td><label>Rok wydawania: </label></td>
<td><sf:input path="publicationYear" id="publicationYear" /></td>
<td><sf:errors path="publicationYear" cssClas="error" /></td>
</tr>
<tr>
<td><label>Wydawca: </label></td>
<td><sf:textarea path="publisher" id="publisher" /></td>
<td><sf:errors path="publisher" cssClas="error" /></td>
</tr>
<tr>
<td><input name="submit" type="submit" value="Dodaj" class="btn btn-primary" /></td>
</tr>
</table>
</sf:form>
</div>
</tiles:putAttribute>
</tiles:insertDefinition>
最佳答案
我解决了我的问题。为了让它发挥作用,我做了以下事情:首先,我将依赖项更改为 jackson2
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.3</version>
</dependency>
然后我用 @JsonProperty 和 @JsonIgnore 注释了我的 Book 类。这是我更新的 Book 类
@Entity
@Table(name="Book")
@Indexed
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "bookId")
@JsonIgnore
private Long id;
@Column(nullable = false)
@Field(index = Index.YES, analyze=Analyze.YES, store=Store.NO)
@JsonProperty("title")
private String title;
@Column(nullable = false, unique = true)
@JsonProperty("ISBN")
private String ISBN;
@Column(nullable = false)
@Field(index = Index.YES, analyze=Analyze.YES, store=Store.NO)
@JsonProperty("author")
private String author;
@JsonProperty("publisher")
private String publisher;
@Column(length = 1000)
@JsonProperty("description")
private String description;
@JsonProperty("publicationYear")
private int publicationYear;
@JsonProperty("pages")
private int pages;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
@JsonIgnore
private BookStatus bookStatus;
@ManyToMany(mappedBy = "booksWant", cascade = CascadeType.ALL)
@JsonIgnore
private List<User> user = new ArrayList<User>(0);
@OneToMany(mappedBy = "book", cascade = CascadeType.ALL)
@JsonIgnore
private List<UserBook> bookList = new ArrayList<UserBook>(0);
public Book(String title, String ISBN, String author, String publisher, String description,
int publicationYear, int pages, BookStatus bookStatus) {
this.title = title;
this.ISBN = ISBN;
this.author = author;
this.publisher = publisher;
this.description = description;
this.publicationYear = publicationYear;
this.pages = pages;
this.bookStatus = bookStatus;
}
getters and setters
}
关于jquery - Spring MVC 400 错误请求 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26744307/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!