我想将客户端 JSON 数据发布到服务器,cgi-bin perl 脚本将在服务器上读取它。一直在寻找有关如何在服务器端读取数据的示例,但一无所获。我正在使用 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"} ];