Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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
Angular 从角度前端访问Spring Boot控制器时出现问题_Angular_Maven_Spring Boot - Fatal编程技术网

Angular 从角度前端访问Spring Boot控制器时出现问题

Angular 从角度前端访问Spring Boot控制器时出现问题,angular,maven,spring-boot,Angular,Maven,Spring Boot,我有以下设置: 我的控制器: @RequestMapping("/project") @RestController public class ProjectController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired ProjectService projectService; @CrossOrigin @PostMapp

我有以下设置:

我的控制器:

@RequestMapping("/project")
@RestController
public class ProjectController {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    ProjectService projectService;

    @CrossOrigin
    @PostMapping(value = "/createProject")
    public ResponseEntity createProject(@RequestBody ProjectDto projectJsonString) {
        return ResponseEntity.ok(HttpStatus.OK);
    }
}
this.http.post('http://localhost:8080/project/createProject', JSON.stringify(project)).
      subscribe( (res) => {
        this.logger.info('Response: ' + res);
      });
public class ProjectDto {
    private String projectName;
    private String projectNumber;
    private String projectArea;
    private String managerName;
    private String managerShorthand;
}
在my
.service.ts中

@RequestMapping("/project")
@RestController
public class ProjectController {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    ProjectService projectService;

    @CrossOrigin
    @PostMapping(value = "/createProject")
    public ResponseEntity createProject(@RequestBody ProjectDto projectJsonString) {
        return ResponseEntity.ok(HttpStatus.OK);
    }
}
this.http.post('http://localhost:8080/project/createProject', JSON.stringify(project)).
      subscribe( (res) => {
        this.logger.info('Response: ' + res);
      });
public class ProjectDto {
    private String projectName;
    private String projectNumber;
    private String projectArea;
    private String managerName;
    private String managerShorthand;
}
我的Dto:

@RequestMapping("/project")
@RestController
public class ProjectController {
    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    ProjectService projectService;

    @CrossOrigin
    @PostMapping(value = "/createProject")
    public ResponseEntity createProject(@RequestBody ProjectDto projectJsonString) {
        return ResponseEntity.ok(HttpStatus.OK);
    }
}
this.http.post('http://localhost:8080/project/createProject', JSON.stringify(project)).
      subscribe( (res) => {
        this.logger.info('Response: ' + res);
      });
public class ProjectDto {
    private String projectName;
    private String projectNumber;
    private String projectArea;
    private String managerName;
    private String managerShorthand;
}
但是,当我将应用程序构建到一个jar文件并执行它时,在执行api调用时会出现以下错误:

HttpErrorResponse {headers: HttpHeaders, status: 415, statusText: "OK", url: "http://localhost:8080/project/createProject", ok: false, …}
error:
error: "Unsupported Media Type"
message: "Content type 'text/plain;charset=UTF-8' not supported"
path: "/project/createProject"
status: 415
timestamp: "2018-12-10T21:41:26.036+0000"
当我卷曲它时也会发生同样的事情。有人能告诉我我做错了什么吗?

当请求没有包含适当的内容类型标头时,会出现“不支持的媒体类型”错误

请确保您的请求包含值为“application/json”的“Content Type”标头(假设您发送的数据是json格式的)。

当请求不包含适当的内容类型标头时,会出现“Unsupported Media Type”错误


请确保您的请求包含值为“application/json”的“Content Type”标题(假设您发送的数据是json格式的)。

如HL'REB所述,您应该在post请求中添加正确的内容类型,当您使用spring boot和RestController时,我假设默认的json支持已激活,因此这可能是预期的媒体类型(
application/json

因此,您可以尝试以下更改

this.http.post('http://localhost:8080/project/createProject,JSON.stringify(项目),
{ 
标题:{'Content-Type':'application/json'}
}).subscribe((res)=>{this.logger.info('Response:'+res);});

正如HL'REB所提到的,您应该在post请求中添加正确的内容类型,因为您使用的是spring boot和RestController。我假设默认的json支持已激活,因此这可能是预期的媒体类型(
应用程序/json

因此,您可以尝试以下更改

this.http.post('http://localhost:8080/project/createProject,JSON.stringify(项目),
{ 
标题:{'Content-Type':'application/json'}
}).subscribe((res)=>{this.logger.info('Response:'+res);});

url中的“createProject”是什么?我看不到这方面的映射。只需使用@Lemmy抱歉,我看到我的类仍然包含该url的常量,我将更新它。这是我方法的映射器-我看到了第一个问题,我使用了
name
而不是
value
,谢谢!我理解这一点,但我是说您没有createProject的映射。使用值而不是名称。请参阅remove stringify,因为您必须发送JSONURL中的“createProject”是什么?我看不到这方面的映射。只需使用@Lemmy抱歉,我看到我的类仍然包含该url的常量,我将更新它。这是我方法的映射器-我看到了第一个问题,我使用了
name
而不是
value
,谢谢!我理解这一点,但我是说您没有createProject的映射。使用值而不是名称。请参阅remove stringify,因为您必须发送json