Wie man Daten auf Payload anstelle von Formdata POSTET

Lesezeit: 1 Minute

Ich versuche, über ein von mir erstelltes Webskript eine Anfrage an einen Alfresco-Dienst zu stellen und einige JSON-Daten an die Nutzlast zu übergeben.

Dies ist der Alfresco-Service:

http://localhost:8080/share/proxy/alfresco/api/internal/downloads

Und ich muss ein JSON-Array mit einem Skriptknoten übergeben, etwa so:

var jsonData = "[{'nodeRef':'workspace://SpacesStore/920b43d4-e79c-40eb-96f3-1dff3a169929'},  {'nodeRef':'workspace://SpacesStore/f19fba4b-0cf6-4379-a858-70d0d7d9efb0'},{'nodeRef':'workspace://SpacesStore/6ea51288-9364-4070-a23b-499025a6c1f9'}]";

Ich mache den Anruf auf diesem Weg

$.ajax({
    url: serviceUrl,
    type: "POST",
    dataType: "json",
    data: jsonData
}); 

Wenn ich die Anforderungsliste der Entwicklertools überprüfe, sehe ich leider, dass meine JSON-Daten als Formulardaten bei der Anforderung übergeben werden, und ich erhalte eine interne Serverfehlerantwort.

Ich habe gesehen, dass derselbe Dienst auf einer anderen Website verwendet wird und dort die Daten als Payload übergeben werden, also denke ich, dass die Daten wirklich an die Payload übergeben werden müssen.

Weiß jemand wie man das erzwingt?

Ich denke, es hängt vom Content-Type-Header der Anfrage ab; Wenn der Inhaltstyp “application/x-www-form-urlencoded” ist, wird er unter Formulardaten angezeigt. Wenn Sie beispielsweise Content-Type: application/json eingeben, sollte der JSON Teil der Nutzlast sein. Sie können Folgendes verwenden:

$.ajax({
    url: serviceUrl,
    type: "POST",
    dataType: "json",
    data: jsonData,
    contentType: "application/json"
});       

  • contentType: "application/json" löst das Problem!

    – Leonardo Beal

    8. Dezember 2017 um 14:52 Uhr

  • + JSON.stringify( jsonData ) könnte auch einige Probleme lösen

    – Jacob van Lingen

    24. September 2018 um 12:20 Uhr


  • Die Antwort hat das Problem für mich nicht gelöst, aber JSON.stringify(jsonData) tat.

    – thdoan

    20. Dezember 2019 um 19:39 Uhr

1136170cookie-checkWie man Daten auf Payload anstelle von Formdata POSTET

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy