- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Spring MVC 并尝试使用 jQuery。我的网页上有这个:
$(document).ready(function () {
var entity = {mag: "status_key", paper: "View10"};
$("#btn").click(function () {
$.ajax({
url: "ajaxJsonPost",
type: 'post',
dataType: 'json',
data: JSON.stringify(entity),
contentType: 'application/json',
});
});
});
Spring 服务器有这个:
@RequestMapping(value = "ajaxJsonPost", method = RequestMethod.POST)
public void postJson(@RequestBody Entity en) throws IOException {
System.out.println("writing entity: " + en.toString());
}
好的,实体来到服务器。但是浏览器控制台打印 404 not found
。我知道我的 POST 请求需要任何响应。在 Internet 上,我找到了建议我返回 ResponseEntity 对象或使用注释 @ResponseStatus 的解决方案。它们都能很好地返回 HttpStatus,但我不知道在哪些情况下应该使用它们。什么是最好的方法?
最佳答案
@Controller
@RequestMapping("/apipath")
public class SomeController {
@RequestMapping(value = "/ajaxJsonPost", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public String postJson(@RequestBody final Entity en) {
System.out.println(en.toString());
//assuming you have a class "EntityService" and
//it has a method postData
//which takes Entity object as parameter and pushes into database.
EntityService.postData(en);
System.out.println("added");
return "success";
}
}
服务器端的实体对象
@JsonAutoDetect
public class Entity {
private String mag;
private String paper;
public String getMag() {
return mag;
}
public void setMag(final String mag) {
this.mag = mag;
}
public String getPaper() {
return paper;
}
public void setPaper(final String paper)
this.paper = paper;
}
}
Ajax
$(document).ready(function () {
var entity = {mag: "status_key", paper: "View10"};
$("#btn").click(function () {
$.ajax({
url: "/apipath/ajaxJsonPost",
type: 'post',
dataType: 'json',
data: JSON.stringify(entity),
contentType: 'application/json',
success : function(response) {
alert(response);
},
error : function() {
alert('error');
}
});
});
});
至于为什么以及何时使用@ResponseStatus 和@ResponseEntity,@Sotirios Delimanolis 在这里已经给出了一个简短的答案。 When use @ResponseEntity .
它说:
ResponseEntity is meant to represent the entire HTTP response. You can control anything that goes into it: status code, headers, and body.
@ResponseBody is a marker for the HTTP response body and @ResponseStatus declares the status code of the HTTP response.
@ResponseStatus isn't very flexible. It marks the entire method so you have to be sure that your handler method will always behave the same way. And you still can't set the headers. You'd need the HttpServletResponse or a HttpHeaders parameter.
Basically, ResponseEntity lets you do more.
关于java - 从 ajax 发送 POST 方法后出现 404 错误(@ResponseStatus 和 ResponseEntity),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28923016/
现在我需要我的 Controller 根据业务逻辑返回 2 种不同类型的对象,所以我的问题是我应该使用 ResponseEntity 或者我应该使用: ResponseEntity 这种返回类型有
我知道原始类型在代码中很糟糕,而且 List和 List ,例如,是不同的东西。但是 ResponseEntity 的情况呢?和 ResponseEntity ?在 @RestController 中
在 Spring Webflux 中, ResponseEntity 与 Mono 作为休息 Controller 的返回类型有什么区别? 什么时候最合适? 跟进这个问题,假设我需要返回一个列表,或者
我正在重构一些代码,这是下面示例的更大范围。 “主”类中充满了这些 try/catch block ,并且模糊了代码正在执行的操作。 我没有使用 Spring,而是使用 JaxRs 来处理异常。这将是
我正在尝试模拟 Controller 的 post 方法。我希望它返回状态代码 201(CREATED) 。但它给出了状态代码 200。下面给出的是代码这是我的 Controller 类 packag
我经常在代码中使用的结构如下: @RestController public class HelloController { @Autowired private HelloService h
请找到下面提到的代码:我需要帮助为 ResponseEntity 编写 Mockito 条件: if(isObjectPresent(ePartnerRestRequestDTO)) {
这个问题已经有答案了: Why do I get the error "File cannot be resolved to a type"? (5 个回答) 已关闭 3 年前。 我尝试在我的其余端点
我有下面的函数,我试图用我的对象列表返回 ResponseEntity。我不知道我错过了什么。 @RequestMapping(method = RequestMethod.GET, path
我对 Spring 有点陌生。我做了以下方法: public ResponseEntity updateBorder(@Valid @RequestBody Borders borders) thro
我需要模拟一项服务。我在ResponseEntity中得到空值一边 mock 全类同学一边回答。 需要模拟的方法: public List getExpression(String expressVi
我想在浏览器中显示 Controller (使用 Spring)返回的 ResponseEntity 的主体: return new ResponseEntity<>(l.getReachableDa
我正在返回一个用于文件下载的 ResponseEntity。 @RequestMapping("/download") public ResponseEntity download(){ by
这个问题引用了问题: Setting the response content-type without using HttpServletResponse 使用以下代码: @RequestMappi
我正在开发一个 spring 3.2.7 应用程序,它通过输出字节数组 ResponseEntity 的 spring Controller 将存储在数据库中的签名作为 base64 字符串发送回用户
我对 Spring 框架还很陌生,我正在尝试通过开发示例项目来学习 也许这是一个愚蠢的问题,但我根本找不到任何帮助。 当验证规则未通过时,我的 Controller 正在使用转义字符串而不是对象的 j
如果使用@Cacheable 作为返回值'ResponseEntity',我会遇到序列化错误。 Caused by: org.springframework.data.redis.serializer
我使用 ResponseEntity 为 GET“api/v1/name”和 POST“api/v1/name”请求返回响应。 我的目标是不返回空值的响应,例如在 POST "api/v1/name"
我创建了一个通用异常 DTO,它也扩展了 RuntimeException。通过这种方式,可以在应用程序中使用它,也可以将其用作 DTO。问题是当我将 DTO 应用于 ResponseEntity 构
public void etisLogAround(ProceedingJoinPoint joinPoint, EtisLog etisLog) throws Throwable {
我是一名优秀的程序员,十分优秀!