mi proyecto es crear una página de entrada para introducir algunos dentro del texto y enviarlo a MySQL (phpMyAdmin). Estoy usando resorte de arranque 2.1.4 y angulares 7. Gracias de antemano por la investigación! amor
Me estoy enfocando en GraphController.java y tratando alternativa múltiple con @CrossOrigin
. Estoy intentado llamar esto en global, pero nada ... aquí es mi fuente https://spring.io/blog/2015/06/08/cors-support-in-spring-framework Probé todo nada demasiado
Mi entidad (Graph.java)
@Entity(name = "graphiques")
@Table(name ="graphiques")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Graph {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name ="id")
private Long id;
@Column(name ="xml")
private String xml;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getXml() {
return xml;
}
public void setXml(String xml) {
this.xml = xml;
}
}
mi GraphController.java
@RestController
@CrossOrigin
@RequestMapping("/insert")
public class GraphController {
@Autowired
GraphRepository graphRepository;
@GetMapping
@ResponseBody
public String addGraph(@RequestParam String xml) {
Graph graph = new Graph();
graph.setXml(xml);
graphRepository.save(graph);
String ret = "Graph has been added";
return ret;
}
Mi xml-insert-form.component.ts en Angular
insertForm: FormGroup;
xml: string;
submitted = false;
graph: Graph;
initForm() {
this.insertForm = this.formBuilder.group({
xml: ['', Validators.required]
});
}
onSubmit() {
const xml = this.insertForm.get('xml').value;
const newGraph = new Graph(xml);
this.graphService.createNewGraph(newGraph).subscribe(
graph => {
console.log('onSubmit OK');
},
error => console.log('Erreur lors de l\'ajout du nouveau graph')
);
this.submitted = true;
}
En MySQL Tengo 1 base de datos llamada "sogetiauditback" y una tabla denominada "graphiques" con un "id" y la columna "xml". (XML va a ser el texto sin formato del texto de entrada)
Esperar resultado: No hay error 403 y mis datos dentro de la entrada en sended mensaje de error MySQL (Google Chrome:
- polyfills.js:3251 OPTIONS http://localhost:8282/insert 403
- Access to XMLHttpRequest at 'http://localhost:8282/insert' 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.
)
Añadir CORS config de la siguiente manera:
CORSConfig.java
@Configuration
public class CORSConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "DELETE", "HEAD");
}
}