2014-11-27 2 views
14

페이로드에서 일부 json 데이터를 전달하는 웹 스크립트에서 Alfresco 서비스에 요청하려고합니다.formdata 대신 페이로드에서 POST 데이터를 처리하는 방법

이것은 알 프레스코 서비스입니다 :

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

내가 JSON 배열을 전달할 필요가 그런 일부 스크립트 노드, 오순절 :이 길에 전화를 걸

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

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

불행히도 개발자 도구에서 요청 목록을 확인하면 내 json 데이터가 F orm 데이터를 요청하고 내부 서버 오류 응답을받습니다.

다른 웹 사이트에서 사용 된 것과 동일한 서비스가 보였으므로 데이터가 페이로드로 전달되므로 실제 데이터가 페이로드로 전달되어야한다고 생각합니다.

아무도 그것을 강제하는 방법을 알고 있습니까?

답변

21

요청의 Content-Type 헤더에 달려 있다고 생각합니다. 내용 유형이 "application/x-www-form-urlencoded"이면 양식 데이터 아래에 표시됩니다. 예를 들어 Content-Type : application/json을 넣으면 json은 페이로드의 일부 여야합니다. 다음을 사용할 수 있습니다 :

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

젠장, 오른쪽! – Enrico

+0

'contentType : "application/json"'이 문제를 해결합니다! –