当我将RequestHeader设置为Content-type=“application/json”时,它将变为“application/x-www-form-urlencoded”,并且我得到了不支持的媒体类型错误(无效的内容类型:application/x-www form-urlencoded)
我的RestController代码:
@PostMapping(value = "books/searchProcess/{pageNumber}")
@ResponseBody
public List<BookDto> bookSearchProcess(@RequestBody BookDto bookDto,
@PathVariable(required = false) int pageNumber) {
long totalPages = bookService.getTotalNumberOfPages(bookDto);
if (totalPages == 0)
return null;
if (pageNumber > totalPages)
pageNumber = (int) totalPages;
return bookService.findMaxMatch(bookDto, pageNumber - 1, Integer.parseInt(env.getProperty("Page.Rows")));
}
我的javascript函数:
function sendToSearch(pageNumber) {
let book = createJsonSearchObject();
const request = new XMLHttpRequest();
request.onreadystatechange = function () {
if (this.readyState === 4 && this.status === 200) {
createResultTable(this.response);
}
};
request.open("POST", "/admin/books/searchProcess/" + pageNumber, true);
request.setRequestHeader("Content-type", "application/json");
request.dataType = "json";
request.responseType = "json";
book = JSON.stringify(book);
request.send(book);
}
function createResultTable(books) {
let table = document.createElement('table');
table.setAttribute("id", "result-table");
table.setAttribute("class", "table table-hover table table-bordered table-striped");
let i;
table.insertRow(0).outerHTML =
`<tr class="header">
<th>Book Name</th>
<th>Author Name</th>
<th>Author Family</th>
<th>ISBN</th>
</tr>`;
for (i = 0; i < Object.keys(books).length; i++) {
const book = books[i];
table.insertRow(i + 1).outerHTML =
`<tr>
<td id="name` + i + `">` + book.name + `</td>
<td id="author.name` + i + `">` + book.author.name + `</td>
<td id="author.family` + i + `">` + book.author.family + `</td>
<td id="isbn` + i + `">` + book.isbn + `</td>
</tr>`;
}
const deleteBtn = document.createElement('button');
deleteBtn.setAttribute("class", "btn btn-group btn-danger btn-delete");
deleteBtn.setAttribute("id", "btn-delete");
deleteBtn.setAttribute("onclick", "sendToDelete()");
deleteBtn.appendChild(document.createTextNode("Delete Selected Items"));
document.getElementById("search-result").append(table);
document.getElementById("delete-btn").append(deleteBtn);
}
问题解决了。我使用button标签发送用户请求,将其改为button类型输入,一切都修复了
HttpRequest设置表单内容类型无效 但是打印content-type=application/x-www-form-urlencoded;charset=UTF-8 如果使用,那么没有问题,但是查询只支持字符串。
我无法在HttpClient上设置内容类型。我接着问了一个问题:如何为HttpClient请求设置Content-Type头?但还是没有运气。 所以我怎么能强迫它,这样它就真的添加了它呢?提前道谢。
基础 content 渲染 <vuep template="#exampleContent"></vuep> <script v-pre type="text/x-template" id="exampleContent"> <template> <div class="amap-page-container"> <el-amap vid="amapDe
我的架构是: XML文档: 我得到了一个异常,因为XML文档有错误:true cvc complex type。2.4。a: 发现以元素“create\u date”开头的内容无效。应为{create\u Date}之一。 有人能帮我吗?
我一直试图仅使用文件内容检测MIME类型,使用Apache Tika Core和Apache Tika Parser1.23 jars。下面是用于相同内容的代码: Tika无法检测扩展名为。tmp(text/plain file)和iso-8859-1字符集的文件的内容类型,内容如下: èé 通过以下方式正确检测具有相同配置和以下内容的文件: 000000000000000000000000000
在谷歌Chrome中,一些客户无法进入我的支付页面。当尝试提交表单时,我遇到以下错误: name=''的无效窗体控件不可聚焦。 这是来自JavaScript控制台的。 我读到这个问题可能是由于隐藏的字段具有必需的属性。现在的问题是,我们使用的是.NET webforms required字段验证器,而不是html5 required属性。 谁得到这个错误似乎是随机的。有没有人知道解决这个问题的办法