クライアント側のJSONデータをサーバーに投稿し、そこでcgi-binperlスクリプトによって読み取られます。サーバー側でデータを読み取る方法の例を探していましたが、何も見つかりませんでした。dojoバージョン1.8.1.を使用しています。
リクエストがサーバー側でcgiスクリプトに着信していることがわかりますが、入力値を検索してもJSONデータは見つかりません。
サーバー側では、urlプロパティから渡された「cmd」パラメーターを確認できます。また、データのない「1」も表示されます。サーバー側にJSON.pmをダウンロードしてインストールしましたが、POST後にクライアントからJSONデータを見つけることができません。
サーバー側のperlスクリプトは、クライアントによって投稿されたJSONデータをどのように読み取りますか?
どうも!!!
var xhrArgs = {
url: "/cgi-bin/DataExport.cgi?cmd=file",
content: xfer_data,
headers: { \"Content-Type\": \"application/json; charset=utf-8\"},
load: function(data) {
alert('Posted!' + data);
},
error: function(error) {
alert('Error! ' + error);
}
};
dojo.xhrPost(xhrArgs);
アップデート..
dojoバージョン1.8.1のコードを変更しました。
require(["dojo/request"], function(request){
var promise = request.post("/cgi-bin/DataExport.cgi", {
data: xfer_data,
timeout: 4000
});
promise.response.then(function(response){
var message = response.data;
alert(message);
});
});
サーバー側の$ENV{'QUERY_STRING'}にはまだ何も表示されません。リクエストは通過しますが、JSONデータが見つかりません???
var xfer_data = [ {"ID":"1",
"Device #":"176",
"Access #":"002-20",
"Address":"MH48 STEWART & CRANDON",
"TP":"MF",
"Curr":" ",
"Last":" ",
"Tdy":"8.6",
"-1":"8.6",
"-2":"8.6",
"-3":"8.6",
"-4":"8.6",
"-5":"8.6",
"-6":"8.6",
"Wk-1":"8.6",
"Wk-2":"8.6",
"Wk-3":"8.6",
"Wk-4":"8.6",
"Alarm":" R ",
"In":"14"} ];