Spring Boot Cors-Problem

Kalito

Erfahrenes Mitglied
Hallo,

ich habe eine kleine Anwendung geschrieben, die über eine URL von einer anderen Anwendung aufgerufen werden soll. Beide Anwendungen laufen auf unterschiedlichen Domainen. Mein Java-Controller sieht so aus:

Java:
@RequestMapping(value = "/invoice_for_checking" ,method = RequestMethod.POST)
    public ResponseEntity invoice_for_checking(@RequestBody Email emaildata)
    {

        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/json);
        headers.add("Access-Control-Allow-Origin", "*");
        headers.add("Access-Control-Allow-Methods", "*");
        headers.add("Access-Control-Allow-Headers", "*");

        Boolean result = es.send_invoice_for_checking(emaildata);

        if (result == true)
        {
            return ResponseEntity.ok()
                    .headers(headers)
                    .body("Success");
        }
        else
        {
            return ResponseEntity.badRequest()
                    .headers(headers)
                    .body("Fehler bei der Mailversendung");
        }

    }

und so sieht mein Ajax-Aufruf aus:

Javascript:
var data = '{'+
                        '"sender":"buchhaltung@domain.net",'+
                        '"sender_firstname":"Jana",'+
                        '"recipient":"user@domain.net",'+
                        '"recipient_firstname":"Patrick",'+
                        '"subject":"Rechnung '+rechnungsnummer+' liegt zur Prüfung bereit",'+
                        '"invoice_contract":"Ein Vertrag",'+
                        '"invoice_bill_number":"'+rechnungsnummer+'",'+
                        '"invoice_amount":"'+rechnungsbetrag+'",'+
                        '"invoice_begin":"'+rechnungszeitraum_begin+'",'+
                        '"invoice_end":"'+rechnungszeitraum_end+'",'+
                        '"pathToAttachment":"'+pdf+'",'+
                        '"invoice_crm_link":"https://crm.domain/main.aspx?etc=10019&id='+pageid+'&newWindow=true&pagetype=entityrecord"'+
                    '}';

        $.ajax({
                type: "POST",
                url: "http://localhost:7777/email/invoice_for_checking",
                dataType: 'json',
                contentType: "application/json",
                data: data,          
                success: function (data, textStatus, XMLHttpRequest) {
                    console.log(data);
                }
            });


Ich bin schon soweit, dass ich herausgefunden habe, dass der 403 bei contentType: "application/json" kommt. Wenn ich diesen aber weglasse, bekomme ich ein 415 zurück, da mein Request-Header den Content-Type "application/x-www-form-urlencoded; charset=UTF-8" hat.


Könnt ihr mir hier weiterhelfen?


Danke und Gruß
Patrick
 
Zuletzt bearbeitet: