Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取CORS策略错误以在Spring中删除条目_Java_Html_Angular_Spring_Typescript - Fatal编程技术网

Java 获取CORS策略错误以在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;

我的Spring应用程序中有以下控制器文件:

@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}