【问题标题】:How do I use Ajax with jQuery in Perl?如何在 Perl 中使用 Ajax 和 jQuery?
【发布时间】:2009-11-17 23:01:27
【问题描述】:

如果我直接调用此函数,它可以正常工作,但如果我使用 ajax 调用从 Javascript 调用它,它将无法正常工作。

我找到了原因,这是因为我使用了 $(document).ready(function ..) ,我应该在 ajax 返回结果后直接调用函数。

【问题讨论】:

  • 努力学习降价格式,以便通过格式化代码使这个问题更有意义。
  • 这是您看到的代码的一部分。实际上,当用户点击某些东西时,就会调用 javascript。我不希望它在加载时直接工作。
  • also: escape 不应使用,它的输出类似于(但不兼容)URL 编码。 encodeURI 也不完全正确。将两者都替换为encodeURIComponent。但是,如果您使用 jQuery 作为标签,您只需将 {target: 'get_section'} 传递给 ajax(或 post)方法,它就会为您计算出编码。

标签: jquery ajax perl


【解决方案1】:

至少,您的 Perl 脚本需要在任何其他输出之前输出以下类型的文本:

内容类型:文本/html

注意Content-Type之后必须有一个空行。

如果您没有这样做,服务器将不会将文本发送到 JavaScript。通常它会跳闸

alert('There was a problem with the request.');

在您的 JavaScript 中。如果您检查变量 .status 的值,它应该等于 500,这是一个错误代码,表明您的脚本失败。

【讨论】:

    【解决方案2】:

    如此混乱,您的 perl 代码只输出没有任何标题的 html(如内容类型)。您的 javascript 似乎没有使用 jQuery,并且您的示例中的任何地方都没有出现任何引用的 ID。

    您是否希望使用 load 类似:$('#view_span').load('filename_ajax.cgi');
    或者也许:

    $('#view_span').load(
      'filename_ajax.cgi',
      {'target': escape(encodeURI('get_section'))},
      alertViewResult);
    

    【讨论】:

      【解决方案3】:

      虽然它的文档记录有点不足(至少对于那些还不太熟悉 jQuery 本身的人来说),但您是否看过 CPAN 上的 JQuery

      【讨论】:

        猜你喜欢
        • 2012-05-02
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 2018-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-11
        相关资源
        最近更新 更多