2

我想使用 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);
  }
});

});
});
4

2 回答 2

2

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

#!/usr/bin/perl -w

use CGI;
my $q=new CGI;

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

注意安全考虑...

于 2012-10-27T13:07:06.237 回答
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]);
            }
        });
    });
});

在警报(或没有警报)中的某个地方,您应该知道什么是失败的。

于 2012-10-27T00:20:38.310 回答