2014-11-27 9 views
14

Ich versuche, eine Anfrage an einen Alfresco-Service von einem Web-Skript zu machen ich gemacht, einige json Daten über die Nutzlast übergeben.Wie die Daten Nutzlast POST anstelle von Formulardaten

Dies ist die Alfresco-Service:

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

Und ich brauche Whit, wie das einige Skript-Knoten eine Json-Array zu übergeben:

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 den Anruf auf diese Weise machen

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

Leider wenn ich chek die Anforderungsliste aus den Entwicklertools ich sehe, dass meine json-Daten als F übergeben werden orm Daten über die Anfrage und ich bekomme eine interne Serverfehlerantwort.

sah ich den gleichen Service auf einer anderen Website verwendet und es werden die Daten als Nutzlast weitergegeben, so brauche, ich glaube wirklich, die Daten über die Nutzlast übergeben werden.

Wer weiß, wie es zu zwingen?

Antwort

21

Ich denke, es hängt von den Content-Type-Header der Anforderung; Wenn der Inhaltstyp "application/x-www-form-urlencoded" lautet, wird er unter Formulardaten angezeigt. Wenn Sie beispielsweise Content-Type: application/json eingeben, sollte der JSON Teil der Payload sein. Sie können verwenden:

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

Verdammt richtig! Sie sind die Besten! – Enrico

+0

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

Verwandte Themen