JSON形式のデータを必要とするリモートAPIと通信しようとしています。私たちは、次のようにjQueryのを使用して、これを提出しようとしましたが、SOPのエラーを取得した。ColdFusion 9を使用してJSONをリモートURLにPOSTする方法は?
<script type="text/javascript">
$.ajax({
username: 'username',
password: 'password',
url: "https://api.e2ma.net/123/members/add",
dataType: 'json',
type: 'POST',
data:
{
"fields": {
"name_first": "Name"
},
"email": "[email protected]"
}
});
</script>
は残念ながら、彼らのAPI はないサポートJSONPを行います。
このJSONデータをColdFusion 9からリモートAPIに直接投稿するにはどうすればよいですか?
さらに、には、そのAPIから応答を解析する必要がありますか?ここで
は、ドキュメントへのリンクです:
import_single_member(account_id)
POST /#account_id/members/add
Adds or updates an audience member
Parameters:
email (string) – Email address of member to add or update
fields (dictionary) – Names and values of user-defined fields to update
group_ids (integer) – Optional. Add imported members to this list of groups.
signup_form_id – Optional. Indicate that this member used a particular signup form.
Returns:
The member_id of the new or updated member, and whether the member was added or an existing member was updated
Example:
POST /123/members/add
{
"fields": {
"first_name": "Benjamin"
},
"email": "[email protected]"
}
{
"added": true,
"member_id": 1024
}
ありがとう:http://myemma.com/api-docs/
そして、ここでは簡単なのスニペットは、これらのドキュメントから新しいメンバーの呼び出しを追加しています。
あなたはセットアップにリモートJSONデータをつかむサーバー上のプロキシをしたい、あなたは、あなたのローカルプロキシを呼び出す:
また、あなたがポストを行った後、あなたがこのようにJavaScriptに戻って得るものは何でも返すことができますJavaScriptを使用してリモートデータを取得し、ブラウザに返します。 jQueryは、 '$ .parseJSON()'でJSONをデコードする機能を提供します。あなたのプロキシは、クロスドメイン・ポリシーの問題を避けるために、JavaScriptとリモート・サービスの仲介役として機能します。 – Jasper
このJSONデータをCF内から直接ポストすることで、JQuery/JSをスキップする方法(それによってプロキシが必要)はありませんか? –
確かに、リモートデータをCFで取得し、必要な形式で出力するだけです。 JavaScriptの部分については、jQueryでタグ付けしたので説明しました。 JavaScriptを使用しないと、新しいデータを取得するためにページ全体をリロードする必要があります。サーバーサイドスクリプトのみを使用するのは面倒です。 – Jasper