# jsonproxyでのpostデータについて

**URL:** <https://community.cybozu.dev/t/topic/4740>\
**Category:** kintone 開発相談\
**Created:** [2020 年 1 月 3 日午前 6:12 UTC](https://community.cybozu.dev/t/topic/4740 "2020-01-03T06:12:30Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2012](https://avatars.discourse-cdn.com/v4/letter/l/45deac/32.png) [@Legacy\_Account2012](https://community.cybozu.dev/u/Legacy_Account2012)\
**Post date:** [2020 年 1 月 3 日午前 6:12 UTC](https://community.cybozu.dev/t/topic/4740/1 "2020-01-03T06:12:30Z")

</div>

異なるKintoneドメインからPOSTにてデータ登録をしたく、以下のようなコードで登録を試みているのですが、エラーになってしまいます。

“code”:"CB\_IJ01”

“message”:"不正なJSON文字列です。”

&nbsp;

// リクエストプロパティ(JSON)  
var params = {  
“app”: “1”,  
“record”: {  
“test”: {  
“value”: “test”  
}  
}  
};

var header = {  
‘X-Cybozu-API-Token’ : APP\_TOKEN,  
‘Content-Type’ : JSON.stringify(‘application/json’)  
};

//xxxxxはPOST先のサブドメインにしております。

//POST対象のアプリにてAPIトークン発行し、権限も付与しています。

kintone.proxy(‘[https://xxxxx.cybozu.com/k/v1/records.json](https://xxxxx.cybozu.com/k/v1/records.json)’, ‘POST’, {header}, {params}, function(body, status, headers) {  
//success  
console.log(status, JSON.parse(body), headers);  
}, function(error) {  
//error  
console.log(error); //proxy APIのレスポンスボディ(文字列)を表示  
});

---

<div class="post-metadata">

**Author:** ![Legacy\_Account699](https://avatars.discourse-cdn.com/v4/letter/l/8e7dd6/32.png) [@Legacy\_Account699](https://community.cybozu.dev/u/Legacy_Account699)\
**Post date:** [2020 年 1 月 6 日午前 5:04 UTC](https://community.cybozu.dev/t/topic/4740/2 "2020-01-06T05:04:32Z")

</div>

神崎 良平さん

パッと見ですが、そのソースコードだと以下の問題が見受けられます。

1. header に設定している Content-type
2. proxy に設定している header と params
3. リクエストボディの誤り

それぞれ説明していきますね。

まず、header に設定している Content-type は、JSON.stringify で変換しなくても大丈夫ですよ。

また、今回発生しているエラーの要因となりますが、proxy の引数に設定している  
header や params は、変数に設定している時点でオブジェクトとなっているため、  
実行時に {} で囲う必要はないです。

最後にリクエストボディですが、URI が records となってるので、一括登録だと思っているのですが、合ってます？  
その場合、そのリクエストボディだとエラーが発生するので、[レコード一括登録のドキュメント](https://community.cybozu.dev/hc/ja/articles/202166160#step2)を参考にリクエストボディを修正してみてください。  
一括登録じゃないのであれば、URI は records.json ではなく、record.json になりますね。

以下は上記を元にした修正例です↓  
※ 一括登録ではなく、1件のみの登録の修正例です。

```
// リクエストプロパティ(JSON)
var params = {
"app": "1",
"record": {
"test": {
"value": "test"
}
}
};

var header = {
'X-Cybozu-API-Token' : APP_TOKEN,
'Content-Type' : 'application/json'
};

//xxxxxはPOST先のサブドメインにしております。

//POST対象のアプリにてAPIトークン発行し、権限も付与しています。

kintone.proxy('[https://xxxxx.cybozu.com/k/v1/record.json](https://xxxxx.cybozu.com/k/v1/records.json)', 'POST', header, params, function(body, status, headers) {
//success
console.log(status, JSON.parse(body), headers);
}, function(error) {
//error
console.log(error); //proxy APIのレスポンスボディ(文字列)を表示
});

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2012](https://avatars.discourse-cdn.com/v4/letter/l/45deac/32.png) [@Legacy\_Account2012](https://community.cybozu.dev/u/Legacy_Account2012)\
**Post date:** [2020 年 1 月 7 日午前 12:14 UTC](https://community.cybozu.dev/t/topic/4740/3 "2020-01-07T00:14:28Z")

</div>

しぶい様

丁寧な説明ありがとうございました。

ご教示いただいた方法にて、無事にデータの登録ができました。

大変助かりました。ありがとうございます。
