2014-11-27 27 views
14

Sto provando a effettuare una richiesta a un servizio Alfresco da uno script Web che ho creato, passando alcuni dati json sul payload.Come inviare i dati POST sul payload invece dei dati dei moduli

Questo è il servizio Alfresco:

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

e ho bisogno di passare una matrice JSON briciolo qualche nodo di script, così:

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'}]"; 

faccio la chiamata in questo modo

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

Sfortunatamente quando eseguo il controllo dell'elenco di richieste dagli strumenti di sviluppo, vedo che i miei dati JSON vengono passati come F dati orm sulla richiesta e ottengo una risposta all'errore del server interno.

Ho visto lo stesso servizio utilizzato su un altro sito Web e lì i dati vengono passati come payload, quindi, credo che davvero i dati debbano essere passati sul payload.

Qualcuno sa come forzarlo?

risposta

21

Penso che dipenda dall'intestazione Content-Type della richiesta; se il tipo di contenuto è "application/x-www-form-urlencoded", viene visualizzato sotto forma di dati. Se si inserisce, ad esempio Content-Type: application/json, il json dovrebbe far parte del payload. È possibile utilizzare:

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

Dannazione vero! Sei il migliore! – Enrico

+0

'contentType:" application/json "' risolve il problema! –

Problemi correlati