如果我直接调用此函数它可以正常工作,但如果我使用ajax调用从Javascript调用它它将无法正常工作。
我找到了原因,这是因为我使用$(document).ready(function ..)我应该在ajax返回结果后直接调用函数。
答案 0 :(得分:4)
至少,您的Perl脚本需要在任何其他输出之前输出以下类型的文本:
Content-Type: text/html
请注意,Content-Type
行后必须有一个空行。
如果您不这样做,服务器将不会将文本发送到JavaScript。通常它会使行绊倒
alert('There was a problem with the request.');
在你的JavaScript中。如果检查变量.status
的值,它应该等于500,这是一个表示脚本失败的错误代码。
答案 1 :(得分:3)
如此令人困惑,您的perl代码只输出没有任何标题的html(如内容类型)。您的javascript似乎不使用jQuery,并且您的示例中没有任何引用的ID出现。
您是否希望使用load之类的内容:$('#view_span').load('filename_ajax.cgi');
?
或者也许:
$('#view_span').load(
'filename_ajax.cgi',
{'target': escape(encodeURI('get_section'))},
alertViewResult);
答案 2 :(得分:3)
虽然它有点记录不足(至少对于那些尚未熟悉jQuery本身的人),你有没有看过CPAN上的JQuery?