【问题标题】:AJAX call with jQuery + Coffeescript not generated correctly使用 jQuery + Coffeescript 的 AJAX 调用未正确生成
【发布时间】:2013-03-25 02:24:41
【问题描述】:

我有以下 Coffeescript:

$(document).ready ->`
        $.ajax 'http://www.omdbapi.com/?i=tt1285016',
               type: 'GET'
               dataType: 'json'
               error: (jqXHR, textStatus, errorThrown) -> $('body').append "AJAX Error: #{textStatus}"          
               success: (data, textStatus, jqXHR) -> $('body').append "Successful AJAX call: #{data}"

但是,这会生成以下对我来说不合适的 Javascript:

(function() {
  $(document).ready(function() {
    return $.ajax('http://www.omdbapi.com/?i=tt1285016');
  });

  ({
    type: 'GET',
    dataType: 'html',
    error: function(jqXHR, textStatus, errorThrown) {
      return $('body').append("AJAX Error: " + textStatus);
    },
    success: function(data, textStatus, jqXHR) {
      return $('body').append("Successful AJAX call: " + data);
    }
  });

}).call(this);

谁能告诉我这是哪里出错了?

谢谢, 亚当

【问题讨论】:

  • 你的代码在coffeescript.org上运行良好(减去`)

标签: javascript jquery ajax coffeescript


【解决方案1】:

我无法编译您当前的代码 (CoffeeScript version 1.6.1),但如果您在 $(document).ready -> 之后删除 ` 符号,它将编译为

(function() {

  $(document).ready(function() {
    return $.ajax('http://www.omdbapi.com/?i=tt1285016', {
      type: 'GET',
      dataType: 'json',
      error: function(jqXHR, textStatus, errorThrown) {
        return $('body').append("AJAX Error: " + textStatus);
      },
      success: function(data, textStatus, jqXHR) {
        return $('body').append("Successful AJAX call: " + data);
      }
    });
  });

}).call(this);

我不确定CoffeeScript 如何处理换行符,但我猜你是在*nix 系统上使用Windows end-of-lines (CRLF) 编译文件,这会导致问题。

我这么说是因为类似下面的代码:

 $(document).ready ->

        $.ajax 'http://www.omdbapi.com/?i=tt1285016',

      type: 'GET'

      dataType: 'html'

      error: (jqXHR, textStatus, errorThrown) -> $('body').append "AJAX Error: #{textStatus}"

      success: (data, textStatus, jqXHR) -> $('body').append "Successful AJAX call: #{data}"

编译为您发布的那个。 (注意,之后的第3行有换行符)

【讨论】:

  • 谢谢,结果是我的文本编辑器留下了空格
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
相关资源
最近更新 更多