ブログ

2022/11/22
【プリザンター】 第171回)スクリプト作成後にBad Request(400)エラー

Bad Requestエラー

こんにちは、CCS田中です。

社内で開発者に対してプリザンターのスクリプトの作成を依頼することがあり、いつものように開発を依頼したところ「Bad Request」でエラーが出るとのことで相談を受けました。
Bad Requestは、HTTPの400番台のエラーであり、クライアント側の問題です。今回スクリプトでAPIを使っているため、このAPIで投げるデータに何か間違いがあることは想像できていましたが、何がいけないのかがわかりませんでした。
問題のあったスクリプトの一部は以下の通りです。
ちなみにスクリプトの内容は、レコードを作成した人にだけ、そのレコードを閲覧させるようになっているものを、担当者欄を変更することで設定された担当者が閲覧できるようにする拡張SQLを設定したものです。

<修正前のスクリプト(抜粋)>


$p.ex.updatePermission = function(){
var apiKey = "";
var url = "http://ServerName/pleasanter/api/extended/sql";
var json = {
"ApiVersion": 1.1,
"ApiKey": apiKey,
"Name": "UpdatePermission"
}

$.ajax({
"type": "post",
"url": url,
"data": JSON.stringify(json),
"dataType": "json"
})

エラーの原因

スクリプトの内容を確認したところ、contentTypeの記載がないことがわかりました。
contentTypeを下記のように記載することで、難なくエラーはなくなりました。

このあたりはコピペをしている人も多いと思いますので、コピペのミスや思い込みで記載してしまうとエラーになってしまいます。
自分自身も含めて、注意しないといけませんね。

<修正後のスクリプト(抜粋)>


$p.ex.updatePermission = function(){
var apiKey = "";
var url = "http://ServerName/pleasanter/api/extended/sql";
var json = {
"ApiVersion": 1.1,
"ApiKey": apiKey,
"Name": "UpdatePermission"
}

$.ajax({
"type": "post",
"url": url,
"data": JSON.stringify(json),
"contentType": "application/json",
"dataType": "json"
})

まとめ

いかがでしたか?

今回スクリプトのエラーについて、実例を交えて説明しました。
非常に単純なものですが、エラーが発生したときに確認するポイントとして閲覧者に伝わればよいかと考えています。

弊社ではスタイル・スクリプトサンプル集、プリザンター逆引き辞典のほかにも、運用ノウハウ集の販売もございます。また、導入の支援や、スクリプト開発なども支援いたします。

ご相談の内容によっては有料となる場合がございますが、まずは気軽にご相談ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問い合わせください
☆☆☆

PAGE TOP