Я настраиваю локальный 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"
Если я правильно понял вопрос, вы можете посмотреть в getHttpRequestData(). Оттуда вы будете использовать deserializeJSON(), чтобы получить данные, отправленные в cfm вызовом AJAX. – snackboy
@snackboy вы получили его! что сработало, можете ли вы ответить на вопрос, чтобы я мог дать вам кредит :) – Charles
Как в стороне, использование скриптов .cfc вместо сценариев .cfm обычно делает такие задачи ajax намного проще. Просто определите соответствующие аргументы и к ним можно получить доступ по имени внутри функции, то есть 'arguments.variableName' – Leigh