Java 获取CORS策略错误以在Spring中删除条目
我的Spring应用程序中有以下控制器文件:Java 获取CORS策略错误以在Spring中删除条目,java,html,angular,spring,typescript,Java,Html,Angular,Spring,Typescript,我的Spring应用程序中有以下控制器文件: @RestController @CrossOrigin(origins = "*", allowedHeaders="*") @RequestMapping("/mxkLicenseGenerator") public class MXKLicenseController { @Autowired MXKLicenseDao mxkLicenseDao;
@RestController
@CrossOrigin(origins = "*", allowedHeaders="*")
@RequestMapping("/mxkLicenseGenerator")
public class MXKLicenseController {
@Autowired
MXKLicenseDao mxkLicenseDao;
@DeleteMapping("deleteMxkLicense/{id}")
public void deleteMxkLicense(@PathVariable("id") long id,MXKLicense mxkLicense) {
mxkLicense.setId(id);
mxkLicenseDao.deleteMXKLicense(mxkLicense);
}
道:
HTML:
SERVICE.TS:
private url: string = "http://localhost:8080";
deleteLicense(id: number): Observable<any> {
let headers = new HttpHeaders({
'Content-Type': 'application/xml',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization'
})
let options = {headers:headers, observer: 'response'};
return this.http.delete(`${this.url}/deleteMxkLicense/${id}`,options);
}
私有url:string=”http://localhost:8080";
deleteLicense(id:number):可以观察到,我也必须对一些值进行更新,但甚至不能首先执行删除操作
编辑
更改后添加错误消息:
更改后获取以下错误消息:
更改后出现以下错误:已解决[org.springframework.web.method.annotation.MethodArgumentTypeMismatchException:未能将类型“java.lang.String”的值转换为所需类型“long”;id为@id@NotNull,@GeneratedValue为后端的自动类型最终端点url为常规RequestMapping+DeleteMapping的特定URI,因此:
您在Angular中设置了错误的url,您必须请求此url:
http://localhost:8080/mxkLicenseGenerator/deleteMxkLicense/{id}
同时将@DeleteMapping(“deleteMxkLicense/{id}”)
更改为@DeleteMapping(/deleteMxkLicense/{id}”)
(添加“/”)。最终端点url是一般请求映射+DeleteMapping的特定URI,因此:
您在Angular中设置了错误的url,您必须请求此url:
http://localhost:8080/mxkLicenseGenerator/deleteMxkLicense/{id}
同时将@DeleteMapping(“deleteMxkLicense/{id}”)
更改为@DeleteMapping(“/deleteMxkLicense/{id}”)
(添加一个“/”)。[org.springframework.web.method.annotation.MethodArgumentTypeMismatchException:未能将类型“java.lang.String”的值转换为所需类型“long”;嵌套异常为java.lang.NumberFormatException:对于输入字符串:“{id}”]已解决[org.springframework.web.method.annotation.MethodArgumentTypeMismatchException:未能将类型“java.lang.String”的值转换为所需类型“long”;嵌套异常为java.lang.NumberFormatException:对于输入字符串:“{id}”]
private url: string = "http://localhost:8080";
deleteLicense(id: number): Observable<any> {
let headers = new HttpHeaders({
'Content-Type': 'application/xml',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization'
})
let options = {headers:headers, observer: 'response'};
return this.http.delete(`${this.url}/deleteMxkLicense/${id}`,options);
}
Access to XMLHttpRequest at 'http://localhost:8080/deleteMxkLicense/1' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
generatelicense.component.ts:433 HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: "http://localhost:8080/deleteMxkLicense/1", ok: false, …}
zone-evergreen.js:2952 DELETE http://localhost:8080/deleteMxkLicense/1 net::ERR_FAILED
scheduleTask @ zone-evergreen.js:2952
scheduleTask @ zone-evergreen.js:378
onScheduleTask @ zone-evergreen.js:272
scheduleTask @ zone-evergreen.js:372
scheduleTask @ zone-evergreen.js:211
scheduleMacroTask @ zone-evergreen.js:234
scheduleMacroTaskWithCurrentZone @ zone-evergreen.js:1107
(anonymous) @ zone-evergreen.js:2985
proto.<computed> @ zone-evergreen.js:1428
(anonymous) @ http.js:2581
_trySubscribe @ Observable.js:42
subscribe @ Observable.js:28
(anonymous) @ subscribeTo.js:20
subscribeToResult @ subscribeToResult.js:7
_innerSub @ mergeMap.js:59
_tryNext @ mergeMap.js:53
_next @ mergeMap.js:36
next @ Subscriber.js:49
(anonymous) @ scalar.js:4
_trySubscribe @ Observable.js:42
subscribe @ Observable.js:28
call @ mergeMap.js:21
subscribe @ Observable.js:23
call @ filter.js:13
subscribe @ Observable.js:23
call @ map.js:16
subscribe @ Observable.js:23
deleteLicense @ generatelicense.component.ts:426
eval @ mxkLicensesListDialog.html:27
handleEvent @ core.js:43993
callWithDebugContext @ core.js:45632
debugHandleEvent @ core.js:45247
dispatchEvent @ core.js:29804
(anonymous) @ core.js:42925
(anonymous) @ platform-browser.js:1789
invokeTask @ zone-evergreen.js:391
onInvokeTask @ core.js:39680
invokeTask @ zone-evergreen.js:390
runTask @ zone-evergreen.js:168
invokeTask @ zone-evergreen.js:465
invokeTask @ zone-evergreen.js:1603
globalZoneAwareCallback @ zone-evergreen.js:1629
Show 12 more frames
http://localhost:8080/mxkLicenseGenerator/deleteMxkLicense/{id}