CoffeeScript - AJAX发布/获取问题,返回空白结果

时间:2012-01-12 19:59:46

标签: ajax post get coffeescript

我正在使用Coffeescript重写网站,我遇到了一些非常不正常的错误。我知道这可能是一个非常简单的答案,但我已经坚持了很长一段时间所以决定发帖。

这是我的代码:

$ ->
    rankings = new Rankings
    $('.filter').click ->
        #highlighting filter on click
        if $(this).hasClass('genre-filter')
            rankings.filters.set('genre', $(this).html().toLowerCase())
        else   
            rankings.filters.set('time', $(this).html().toLowerCase())
        #todo: add loading screen to rankings here
        #ajax post
        $.post '../history/ajax/rankingsajax.php',
            genrefilter: rankings.filt('genre')
            timefilter: rankings.filt('time')
            artistfilter: rankings.filt('artist')
            userfilter: rankings.filt('user')
            (data) ->
                alert data

无论我如何尝试和摆弄它,它总是会警告一个空白的弹出窗口。所以我想我会尝试一个更简单的例子并使用get请求。我尝试了以下方法:

    $.get '../index.html', (data) -> alert data

但是,这也会导致弹出一个空白窗口。

上面的代码正确编译到JS,所以我迷失了从哪里开始。任何帮助表示赞赏。

-Calvin

2 个答案:

答案 0 :(得分:3)

不要害怕使用花括号和括号。它们不是必需的,但它们可以帮助澄清正在发生的事情。

$ ->
    rankings = new Rankings
    $('.filter').click ->
        #highlighting filter on click
        if $(this).hasClass('genre-filter')
            rankings.filters.set('genre', $(this).html().toLowerCase())
        else   
            rankings.filters.set('time', $(this).html().toLowerCase())
        #todo: add loading screen to rankings here
        #ajax post
        $.post '../history/ajax/rankingsajax.php', {
            genrefilter: rankings.filt('genre')
            timefilter: rankings.filt('time')
            artistfilter: rankings.filt('artist')
            userfilter: rankings.filt('user')
        }, (data) -> console.log(data)

空白弹出窗口至少让你知道你正在接受成功的回调,这很好。所以也许检查你是否正在调用正确的网址。我注意到你正在使用相对路径../history/ajax/rankingsajax.php,确保路径是相对于使用JavaScript而不是JavaScript文件本身的HTML页面。

我将使用alert(data)而不是console.log(data),并在Chrome和Safari中使用Firebug或JS控制台来查看正在发生的事情。控制台提供的信息多于警报。

祝你好运, 桑德罗

答案 1 :(得分:0)

我不确定您的相对网址是否有后退。尝试扩大路径。