背景・実現したいこと
KintoneRESTAPIを利用して、ガルーンのWFで承認となったものをKintoneのアプリに
自動で登録する処理を実装しています。下記Tipsを参考にしました。
https://developer.cybozu.io/hc/ja/articles/115005527006–Garoon-JavaScript-API-%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E6%89%BF%E8%AA%8D%E6%99%82%E3%81%ABkintone%E3%81%AB%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B
一度正常に実装できたのですが、いつからかKintoneへのPOSTがされない状態になりました。
xmlhttp.sendの部分で失敗しているようですが、原因と対応がわからない状態です。
追記:xmlhttp.onloadのFunctionの中に入れていないようでした
ガルーン上のJSですが、KintoneAPIにかかわるのでこちらに投稿させていただきました
エラー情報 (開発者ツールのコンソール)
Edgeの「問題」タブには以下のエラーが出ていました
Response should include ‘x-content-type-options’ header
対応として、
xmlhttp.setRequestHeader(‘X-Content-Type-Options’ , ‘nosniff’)
を挿入しましたが、状況に変わりはありませんでした。
利用したソースコード
(function() {
'use strict';
// xxx部分にkintoneのアプリIDを入力する
var kintoneAppId = 201;
// kintoneにワークフローのデータを登録
function addKintoneTask(token, request) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', '/k/v1/record.json? __REQUEST_TOKEN__ =' + token);
xmlhttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xmlhttp.setRequestHeader('Content-Type', 'application/json');
// 連想配列の宣言
var body = {};
(中略~~WFデータからJSONを作成する処理)
xmlhttp.send(JSON.stringify(body));
xmlhttp.onload = function() {
console.log(xmlhttp.response);
return xmlhttp.responseText;
};
}
garoon.events.on('workflow.request.approve.submit.success', function(event) {
console.log(event);
var request = event.request;
// 最終承認後に登録
if (request['status']['type'] == "COMPLETED"){
return garoon.connect.kintone.getRequestToken().then(function(token) {
try {
addKintoneTask(token, request);
} catch (e) {
alert(e);
console.log(e);
}
});
}
});
})();