2017-07-17 75 views
1

我是Angular 2和CORS的新手從Angular2到Rest API的Http POST [CORS]

我想將表單數據從Angular 2發佈到Rest控制器。但是我發現了以下錯誤

具有狀態響應:0和網址:空

component.ts 
--------------------------------------- 

onSubmit(form:NgForm) { 

console.log(form.value); 
var job = JSON.stringify(form.value); 
alert(job); //getting the value 



this.jobCleanupService.addJobCleanUp(job).subscribe(
     data => alert(data), 
     error => alert(error) 
    ); 
    } 


jobcleanup.service.ts 
---------------------------------- 

addJobCleanUp(job:any){ 
     let headers = new Headers({ 'Content-Type': 'application/json' }); 
let options = new RequestOptions({ headers: headers }); 

     alert('service'+ job); //getting the value 

return this.http.post('http://localhost:8080/addjobcleanup', job,options) 
        .map(res => res.json()); 
    } 

休息控制器在不同的回購

RestController 
--------------------------- 

@CrossOrigin(origins = "http://localhost:4200/newjobcleanup") 
    @RequestMapping(value = "/addjobcleanup" ,method = RequestMethod.POST) 
    @ResponseBody 
    public String addJobCleanUp(@PathVariable String job) { 
     logger.info("Add Job Clean Up"); 
     return "Success"; 
    } 
+0

您使用的是正確的網址嗎?我看到localhost:4200和localhost:8080 –

+0

您是否已將代理配置添加到您的'package.json'? –

回答

1

你只需要使用http://localhost:4200/爲原點,我認爲這會有所幫助。

+0

非常感謝,它的工作原理。我能夠看到在Rest控制器方法中寫入的日誌語句。 @CrossOrigin(起源= 「HTTP://本地主機:4200」) @RequestMapping(值= 「/ addjobcleanup」,方法= RequestMethod.POST) @ResponseBody 公共字符串addJobCleanUp(@RequestBody字符串作業){ logger.info (「添加工作清理」); 返回工作; } – Jan69