web-dev-qa-db-fra.com

Comment POST données sur la charge utile au lieu de formdata

J'essaie de faire une demande à un service Alfresco à partir d'un script Web que j'ai fait, en passant quelques données json sur la charge utile.

Voici le service Alfresco:

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

Et je dois passer un tableau json avec un nœud de script, comme ça:

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

Je fais l'appel de cette façon

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

Malheureusement, lorsque je vérifie la liste des demandes à partir des outils de développement, je constate que mes données json sont transmises en tant que données de formulaire sur la demande et j'obtiens une réponse d'erreur de serveur interne.

J'ai vu le même service utilisé sur un autre site Web et là, les données sont transmises en tant que charge utile, donc je pense vraiment que les données doivent être transmises sur la charge utile.

Est-ce que quelqu'un sait comment le forcer?

21
Enrico

Je pense que cela dépend de l'en-tête Content-Type de la demande; si le type de contenu est "application/x-www-form-urlencoded", il est affiché sous les données du formulaire. Si vous mettez - par exemple - Content-Type: application/json, le json devrait faire partie de la charge utile. Vous pouvez utiliser:

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