2017-10-25 6 views
0

JSON 응답을 반환하는 웹 스크립트를 만들었습니다. 아래를 참조Alfresco webscript : AJAX, JSON

get.js 파일 :

// search for folder within Alfresco content repository 
var folder = roothome.childByNamePath("PATH"); 

// validate that folder has been found 
if (folder == undefined || !folder.isContainer) { 
    status.code = 404; 
    status.message = "Folder " + " not found."; 
    status.redirect = true; 
} 

// construct model for response template to render 
model.folder = folder; 

get.json.ftl이 깔끔하게 JSON을 반환

{"corporates" : [ 
    <@recurse_macro node=folder depth=0/> 
    ] 
} 

<#macro recurse_macro node depth> 
    <#list node.children?sort_by(["properties","name"]) as child> 
      { 
      "Name" : "${child.properties.name}", 
      "URL" : "${child.url}", 
      "serviceURL" : "${child.serviceUrl}", 
      "shareURL" : "${child.shareUrl}", 
      "ID" : "${child.id}", 
      "Type" : "${child.typeShort}" 
      }, 
      <#if child.isContainer> 
      { 
       <@recurse_macro node=child depth=depth+1/> 
      } 
      </#if> 
    </#list> 
</#macro> 

이 (! 떠올리게),하지만 난에서 JSON을 잡고 싶습니다 AJAX를 사용하는 두 번째 웹 스크립트.

현재,이처럼 내 두 번째 webscript의 get.html.ftl 파일의 일반적인 AJAX 호출을 사용하고 있습니다 :

$(document).ready(function() { 
    $('.submit-button').click(function(e) { 

    // Avoid to trigger the default action of the event. 
    e.preventDefault(); 

    // Actions declared here... 
    $.ajax({ 
     type: 'GET', 
     dataType: 'html', 
     url: 'PLACEHOLDER_URL_PATH', 
     success: function(data) { 

     // Shows the result into the result panel. 
     $('#alfresco-result').html(data); 
     alert('Done.'); 

     }, 
     error: function(data) { 

     // Shows the result into the result panel. 
     $('#alfresco-result').html("ERROR"); 
     } 
    }); 
}); 
}) 

내가 데이터 유형을 사용할 때 AJAX 호출이 작동하지 않는 이유는 내 질문은 : ' json '?

내 AJAX 호출에서 JSON을 구문 분석하여 html (예 : html 목록)으로 바꾸고 싶지만 허용되는 입력으로 JSON dataType을 허용하지 않습니다.

도움을 주시면 감사하겠습니다.

+0

AJAX와에서 돌아오고 무엇 브라우저의 개발 도구에서 응답을 보면 전화를 걸 수 있습니까? –

+0

헤이 @JeffPotts, 답장을 보내 주셔서 감사합니다. JSON 웹 스크립트가 유효한 JSON 응답을 작성하지 않았다는 것을 깨닫게되었습니다. AJAX 호출은 유효한 JSON 응답을 생성 한 후 완벽하게 작동합니다. – tlapinsk

답변

0

당신은 같은 Ajax를 사용하여 POST Webscript 전화를 사용하고

dataObj 당신 된 JSONObject를 전달할 수 있습니다 : "yourJsonObject"

데이터 객체에

Alfresco.util.Ajax.jsonPost(

{ 
      url: Alfresco.constants.PROXY_URI + "sample/mypostwebscript", 

      dataObj:"yourJsonObject", 

      successCallback: { 

          fn: function(res){ 

           alert("success"); 

           alert(res.responseText);                        

          }, 

          scope: this 

      }, 

          failureCallback: 

          { 

           fn: function(response) 

           { 

               // Display error message and reload 

               Alfresco.util.PopupManager.displayPrompt(

               { 

                  title: Alfresco.util.message("message.failure", this.name), 

                  text: "search failed" 

               });           

           }, 

            scope: this 

           } 

}); 

},