同期PUTでサブテーブルを更新する時にFailed to load resource: the server responded with a status of 400 (Bad Request)エラーが出ました

 同期PUTでサブテーブルを更新する時にFailed to load resource: the server responded with a status of 400 (Bad Request)エラーが出ました。

どこの問題ですか?Bad Requestってどうやってdebugですか?

ご教えて頂ければ助かります。有難うございます。

 

(function() {
“use strict”;

//レコードの編集、詳細画面で適用する
var events = [
‘app.record.edit.submit’,
‘app.record.create.submit’
];
kintone.events.on(events, function(event) {
var record = event.record;
var subtabledata=record.売上計上明細テーブル;
//
var token = kintone.getRequestToken();
updatek22subtable(230,token);
return event;
});

function updatek22subtable(rid,token){
 

var appid=22;

var query = ‘レコード番号="’ + rid+‘"’;//
//+ ‘" and ドロップダウン not in (“受注”)’ ;
//+ ’ limit 100 offset ’ + offset;
query = encodeURIComponent(query);
var appUrl = kintone.api.url(‘/k/v1/records’) + ‘?app=’+ appid + ‘&query=’ + query;

var resp_data=req(appUrl);
if(resp_data.records.length > 0){
for(var i = 0; resp_data.records.length > i; i++){
//k22サブテーブルに更新
var strJSON = ‘{ “app”: “22”,“id”: ‘+rid+’, “record” : { “注文書一覧_売上” : { “value” : [{“value” : {“売上合計_売上計上” :{ “value” : “888” }}}]}},“__REQUEST_TOKEN__”:"’ + token + ‘" }’;

putreq(strJSON);

}

}

}

function req(reqUri) {

// 同期リクエストを行う
var xmlHttp = new XMLHttpRequest();
xmlHttp.open(“GET”, reqUri, false);
xmlHttp.setRequestHeader(‘X-Requested-With’,‘XMLHttpRequest’);
xmlHttp.send(null);

//取得したレコードをArrayに格納
var resp_data = JSON.parse(xmlHttp.responseText);
return resp_data;
}

function putreq(strJSON){

// 登録先アプリの設定
var appURL = kintone.api.url(‘/k/v1/record’);

var xmlhttp = false;

var xhr = new XMLHttpRequest();
xhr.open(‘PUT’, appURL);
xhr.setRequestHeader(‘X-Requested-With’, ‘XMLHttpRequest’);
xhr.setRequestHeader(‘Content-Type’, ‘application/json’);
xhr.onload = function() {
if (xhr.status === 200) {
// success
console.log(JSON.parse(xhr.responseText));
} else {
// error
console.log(JSON.parse(xhr.responseText));
}
};
xhr.send(JSON.stringify(strJSON));

 

}

})();

 

pankou4649 さん

xhr.send(JSON.stringify(strJSON)); 文字列を更にstringify処理しているため、余計な"" が付与されていると思います。

 

>どこの問題ですか?Bad Requestってどうやってdebugですか?

とりあえず、エラーメッセージのとおり、実際に送ったデータに誤りが無いか確認してみてください。

Network タブで、送信データも確認できると思います。

 

rex0220さん

ご返事、有難うございます。

rex0220 さん

ご教えて、有難うございます。前の問題が改善しましたが、次の問題が出てきました

サブテーブルを操作する時にも、エラーが出ました、下記リンクです。

https://developer.cybozu.io/hc/ja/community/posts/115010631666-%E5%90%8C%E6%9C%9FPUT%E3%81%A7%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B%E6%99%82%E3%81%AB-%E4%B8%8D%E6%AD%A3%E3%81%AAPOST%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%99-%E7%94%BB%E9%9D%A2%E3%82%92%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84-%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%81%BE%E3%81%97%E3%81%9F