Я уверен, что я полностью этим занимаюсь, но я добрался до этого с помощью других пользователей Stack Overflow, так что спасибо до сих пор.
Мне нужно передать данные POST JSON в удаленный API. Очевидно, что я не могу использовать jQuery из-за проблем SOP, а удаленный API не поддерживает JSONP.
Я также не хочу использовать какой-либо прокси-сервер, чтобы обойти ограничения SOP.
В документах API (http://myemma.com/api-docs/) это форматирование ожидаемых данных (данные запроса и ответа передан как JSON):
POST https://api.e2ma.net//123/members/add
{
"fields": {
"first_name": "myFirstName"
},
"email": "[email protected]"
}
И это то, что я создал до сих пор, но продолжаю получать ошибки удаленного анализа JSON из удаленного API:
<cfset fields[name_first]="#SerializeJSON( "myFirstName" )#" />
<cfset form.email="#SerializeJSON( "[email protected]" )#" />
<cfhttp
url="https://api.e2ma.net/123/members/add"
method="POST"
username="username"
password="pssword"
useragent="#CGI.http_user_agent#"
result="objGet">
<!--- add email --->
<cfhttpparam
type="formfield"
name="email"
value='#form.email#'
/>
<!--- add field: name_first --->
<cfhttpparam
type="formfield"
name="fields"
value='#fields[name_first]#'
/>
</cfhttp>
<cfoutput>#objGet.FileContent#</cfoutput>
Опять же, я, конечно, каким-то образом искажаю структуру своих данных, но я не уверен, что я делаю неправильно, особенно для правильной установки полей ": {" first_name ":" myFirstName " } структура/массив.