2017-01-11 5 views
1

Я настраиваю локальный API в качестве дополнительного шага во внешнем вызове API с помощью AJAX. Последовательность выглядит следующим образом:Обработка ColdFusion данных AJAX JSON

  • Ajax-вызов передает данные на localAPI.cfm.
  • Внутри localAPI.cfm У меня есть <cfhttp>, чтобы отправить данные во внешний api.

Однако, после передачи данных в localAPI.cfm через ajax, как мне настроить (захватить) данные?

Вот Аякса вызов

$.ajax({ 
     type: "POST", 
     url: "MODULES/PAGES/API/localAPI.cfm", 
     // The key needs to match your method's input parameter (case-sensitive). 
     data: JSON.stringify(SDdata), 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(data) {} 
    }); 

внутри localAPI.cfm:

<cfhttp url = "http://<cfoutput>#PageAPILocation#</cfoutput>" method = "POST" result="result"> 
    <cfhttpparam type="body" value="##"/> 
</cfhttp> 
<cftry> 
    <cfset ReturnedData = deserializeJSON(result.FileContent)> 
    <cfcatch> 
     <cfdump var="#result#" /> 
    </cfcatch> 
</cftry> 

Я знаю, что я что-то не хватает, как только я могу понять, как захватить данные, передаваемых с помощью AJAX я буду поместите его в значение cfhttpparam.

Вот, Что передается:

{FunctionName: "PlanList", APIkey: "12345", PageNumber: "1", MaxRows: "10", ReturnType: "json"} 
    APIkey:"12345" 
    FunctionName:"PlanList" 
    MaxRows:"10" 
    PageNumber:"1" 
    ReturnType:"json" 
+0

Если я правильно понял вопрос, вы можете посмотреть в getHttpRequestData(). Оттуда вы будете использовать deserializeJSON(), чтобы получить данные, отправленные в cfm вызовом AJAX. – snackboy

+0

@snackboy вы получили его! что сработало, можете ли вы ответить на вопрос, чтобы я мог дать вам кредит :) – Charles

+0

Как в стороне, использование скриптов .cfc вместо сценариев .cfm обычно делает такие задачи ajax намного проще. Просто определите соответствующие аргументы и к ним можно получить доступ по имени внутри функции, то есть 'arguments.variableName' – Leigh

ответ

4

Вы можете посмотреть в getHttpRequestData(). Оттуда вы должны использовать deserializeJSON(), чтобы получить данные, отправленные в cfm по вызову AJAX.

Смежные вопросы