jQuery + Coffeescript的AJAX调用没有正确生成

AJAX call with jQuery + Coffeescript not generated correctly

本文关键字:调用 Coffeescript AJAX jQuery      更新时间:2023-09-26

我有以下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 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行有一个换行符)