【发布时间】:2019-05-24 17:11:08
【问题描述】:
什么问题,当我尝试从前端发送 dato 到后端时,我得到错误 400,我不明白是什么问题。
import {Injectable} from '@angular/core';
import {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ListUserService {
constructor(public http: HttpClient) {
this.http.get(`http://localhost:8080/user/getUsers/`)
.subscribe(response => {
console.log(response);
});
}
addFriend(user) {
const config = new HttpHeaders().set('Content-Type', 'application/json').set('Accept', 'application/json')
const url = 'http://localhost:8080/meet/friend?idOwner=?&idUser=?';
console.log('SS', user.id);
const body = JSON.stringify({"idOwner": 89.9, "idUser": 89.9});
return this.http.post(url, body, {headers: config}).subscribe(response => {
console.log('jkljl', response);
});
}
}
这就是spring-java中的enpoint,endpoint需要两个参数,一个id-Owner和id-User
@RequestMapping(
value = "/friend/{idUser}/owner/{idOwner}",
method = RequestMethod.POST
)
public ResponseEntity<Meet> friend( @PathVariable Long idUser,@PathVariable Long idOwner) {
log.info("PUSEN " +idOwner+" "+idUser);
return new ResponseEntity<Meet>(meetService.createMeetWithFriend(idOwner, idUser), HttpStatus.OK);
}
我得到这个错误:
019-05-24 14:30:18.518 WARN 9840 --- [nio-8080-exec-2] o.s.web.servlet.PageNotFound : No mapping found for HTTP request with URI [/meet/friend] in DispatcherServlet with name
'dispatcherServlet'
【问题讨论】:
-
@RequestParam是查询参数的still,不是请求正文。 -
@jonrsharpe 我应该改变它吗?我不知道该放什么
-
你应该改变一侧或另一侧,因为它们目前不匹配,但我们不能告诉你哪一个。当您决定 API 实际应该是什么时,Spring Boot docs 可以帮助您实现它。我也评价baeldung.com/spring-boot
-
@jonrsharpe 我在 spring java 中用端点编辑了我的问题
-
所以你希望数据在路径中?因为你也没有这样做。最后一次:客户端请求必须与服务器期望的一致。除非是这样,否则期望它起作用是不合理的。选择一个 API,然后将双方写入该 API。
标签: angular