jquery无法从perl获得响应

时间:2012-10-26 23:40:20

标签: jquery ajax perl

我想使用jquery从服务器上的perl脚本实现ajax响应。但是当我使用这样的代码时,我什么都没得到。我可以在浏览器中从url获取结果,所以我不知道哪里出错了。

$(document).ready(function(){
$("button").click(function(){

$.ajax({
  'type': 'GET',
  'url': 'http://XXXX/cgi-bin/XXX.pl?title=dd',
  'async': true,
  'success': function(data) {
        alert(data);
  }
});

});
});

2 个答案:

答案 0 :(得分:2)

如果 url 字段包含http://server.domain/,并且您尝试从位于 http://server.domain/ 之外的网页访问服务器(如在您的桌面上获取示例,可通过file:///访问),您可能需要在perl CGI发送的标头中添加一个字段Access-control-allow-origin: *

#!/usr/bin/perl -w

use CGI;
my $q=new CGI;

print $q->header(-type=>"text/plain", -Access_Control_Allow_Origin=>"*")."Answer";

注意安全方面的考虑......

答案 1 :(得分:0)

尝试运行以下诊断:

$(document).ready(function(){
    $("button").click(function(){
        alert('click happened');
        $.ajax({
            'type': 'GET',
            'url': 'http://XXXX/cgi-bin/XXX.pl?title=dd',
            'async': true,
            'success': function(data, textStatus, jqXHR) {
                alert('ajax success: ' + [data, textStatus]);
            },
            'error': function(jqXHR, textStatus, errorThrown){
                alert('ajax error: ' + [textStatus, errorThrown]);
            }
        });
    });
});

在警报(或缺少警报)中的任何地方,你应该知道什么是失败的。