我有一个关于 Ajax 的问题总是得到“textStatus: parsererror, errorThrown: SyntaxError: Unexpected token :”,
但是,响应是“responseText:{“success”:“搜索成功”,“时间表”:“aaa”},
我在网站 jsonlint.com 上搜索过它显示 JSON 是有效的。
注意:“aaa”是我要返回的字符串,我想它可能太长所以将它改为“aaa”,但错误仍然存在。
这是来自 Ajax 的代码
$.ajax({
type:"Get",
url:"cgi-bin/timetable.pl",
contentType:"application/json;charset=utf-8",
dataType:"jsonp",
data:"username="+username,
error:function(XMLHttpRequest,textStatus,errorThrown)
{
$('div#result').text(result);
$('div#result').text("responseText: " + XMLHttpRequest.responseText
+ ", textStatus: " + textStatus
+ ", errorThrown: " + errorThrown);
$('div#result').addClass("error");
},
success: function(data)
{
if (data.error)
{
$('div#result').text("data.error: " + data.error);
$('div#result').addClass("error");
}
else
{
$('div#result').text("data.success: " + data.success
+ ", data.userid: " + data.clasinfo);
$('div#result').addClass("success");
}
}
})
这是 Perl 的
foreach $classid(@claid)
{
$class->execute($classid);
while (@cinfo = $class->fetchrow_array())
{
$num = @cinfo;
$combineinfo = "";
for ($i=0;$i<$num;$i++)
{
$combineinfo .= $cinfo[$i]."V";
}
}
push(@info,$combineinfo);
}
$json = (@info)?
qq{{"success":"Search Successful","Timetable":"'@info"}}:
qq{{"error":"Search Error"}};
print $cgi->header(-type => "application/json", -charset => "utf-8");
print $json;