Ajax와 Jquery를 사용하여 JSON 데이터를 Perl 스크립트에 전달하려고합니다. Perl 스크립트에서 데이터를 다시 읽으려고합니다. 하지만 Perl에서 데이터를 읽을 수 없습니다.Perl에서 JSON 데이터를 읽을 수 없습니다.
누군가 나를 도울 수 있습니까? 잘못되었거나 누락되었습니다. HTML과 PERL 모두에 대한 코드가 아래에 나와 있습니다. Ajax는 인쇄 성공 경고 또는 오류 경고를 호출하지 않습니다.
이
는 HTML 파일<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" </script>
<script src="json.js" </script>
<script>
$(document).ready(function(){
$("#get").click(function(){
var data = {
"name": "Bob",
"sex": "Male",
"address": {
"city": "San Jose",
"state": "California"
},
"friends":
[
{
"name": "Alice",
"age": "20"
},
{
"name": "Laura",
"age": "23"
},
{
"name": "Daniel",
"age": "30"
}
]
};
alert (data);
var dataString = JSON.stringify(data, null, 2);
alert (dataString);
$.ajax({
type: 'POST',
url: 'cgi-bin/test3.pl',
data: dataString,
success: function(){
alert("data");
},
error: function()
{
alert ("something wrong");
}
});
});
});
</script>
</head>
<body>
<button id="get">save</button>
</body>
</html>
**이 어떤 도움이 높게 평가 될 것입니다 **
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI;
use CGI qw(:standard);
use DBI;
use JSON;
#print "Content-Type: text/html\n\n";
my $cgi = CGI->new;
my $ddata = decode_json($cgi->param('dataString'));
my $value = $ddata->{'address'}{'city'} ;
my $dbh = DBI->connect('dbi:mysql:test','root','') or die "Connection Error: $DBI::errstr\n";
my $sql = "insert into samples values (NULL, '$value')";
my $sth = $dbh->prepare($sql);
$sth->execute or die "SQL Error: $DBI::errstr\n";
내 펄 파일이 있습니다.
당신은 문자열이 아닌 데이터 구조를 전달합니다. CGI 스크립트는 응답을 반환하지 않습니다. 이 두 가지 문제를 해결하십시오. – amon
HTML 파일에서 JSON.stringify (...)를 사용할 필요가 없다는 것을 의미합니다. –
Firefox 용 Firebug를 가져오고 ajax url/requests/responses를 확인하십시오. 응답이 없으면 웹 서버도 확인하십시오. –