小编gox*_*dia的帖子

如何使用Coldfusion CFHTTP将JSON数据发布到远程API

我确信我完全搞砸了,但是在Stack Overflow用户的帮助下我得到了这么多,所以非常感谢到目前为止.

我需要将JSON数据POST到远程API.显然,由于SOP问题,我无法使用jQuery,而且远程API不支持JSONP.

我也不想使用任何类型的代理来解决SOP限制.

根据API文档(http://myemma.com/api-docs/),这是他们期望的数据格式(请求和响应数据作为JSON传输):

POST https://api.e2ma.net//123/members/add
{
  "fields": {
    "first_name": "myFirstName"
  }, 
  "email": "email@domain.com"
}
Run Code Online (Sandbox Code Playgroud)

这是我迄今为止构建的,但继续从远程API接收"无法解析JSON"错误:

<cfset fields[name_first]="#SerializeJSON( "myFirstName" )#" />
<cfset form.email="#SerializeJSON( "email@domain.com" )#" />

<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>
Run Code Online (Sandbox Code Playgroud)

同样,我肯定会以某种方式破坏我的数据结构,但我不确定我做错了什么,特别是关于正确设置"fields":{"first_name":"myFirstName"}结构/数组.

coldfusion json cfhttp

13
推荐指数
3
解决办法
3万
查看次数

如何将STRUCT - OR - JSON传递给Coldfusion CFC方法

我有一个现有的CFC,在将结构传递给方法时工作正常.

问题是,我们现在还需要通过JSON将数据传递到同一个函数中.

这是CFC片段:

<cffunction 
  name="subscribeAPI" 
  access="remote" 
  returntype="struct" 
  returnformat="json" 
  output="false">

  <cfargument 
    name="structure" 
    type="struct" 
    required="true" 
    hint="data structure received from call">

<cfif StructKeyExists(arguments.structure, "listID") 
  AND len(arguments.structure.listID)>
 ...
</cfif>

<cfreturn LOCAL />
Run Code Online (Sandbox Code Playgroud)

以下是我们传递结构的方式:

<cfset preStruct = {
  apiAction="Create",
  listID="1463",
  email="#form.cartEmail#",
  firstname="#form.first_name#",
  preCart="#now()#",
  planDescription="#application.name.site#"
  }
/>

<cfscript>voidReturn = application.goxObj.subscribeAPI(preStruct);</cfscript>
Run Code Online (Sandbox Code Playgroud)

现在,我们还需要传递以下内容,但由于CFC期望结构,显然会出现错误:

function HandleSubscribe(){
  $j.getJSON(
    "/com/list.cfc?wsdl",
    {
      method : "subscribeAPI",
      action : "Create",
      listID : $j( "#listID" ).val(),
      triggerKey : $j( "#triggerKey" ).val(),
      email : $j( "#emailNL" ).val(),
      firstname : $j( "#firstnameNL" ).val()
    },
  handleSubscribeCallback
);
Run Code Online (Sandbox Code Playgroud)

} …

ajax coldfusion jquery

6
推荐指数
1
解决办法
6131
查看次数

标签 统计

coldfusion ×2

ajax ×1

cfhttp ×1

jquery ×1

json ×1