使用JSon和Prototype的Ajax.Request问题

时间:2008-10-25 11:53:59

标签: json prototypejs

我正在使用以下函数从'PlayListJSON.aspx'加载歌曲播放列表,但有些事情似乎有误,evrytime OnFailure被调用,我无法进一步调试它。任何帮助都是真的很好。

Player.prototype.loadPlaylist = function(playlistId,play)    {

    req = new Ajax.Request('/PlaylistJSON.aspx?id=' + playlistId, 
        { 

            method: 'GET',    
            onSuccess: function(transport,json) {                                                                                    

                eval(transport.responseText);                              

                player.setPlaylist(playlist.tracklist,playlist.title, playlistId);
                player.firstTrack();

                if (play)
                    player.playSong();  

             },
             onFailure: function() {
               //error

             }
         }); 

}

3 个答案:

答案 0 :(得分:1)

通常,当您呼叫的页面由于某种原因无法访问时,会调用OnFailure。

您是否肯定网址 /PlaylistJSON.aspx 有效?


您是否尝试过传递参数参数而不是将它们指定为网址的一部分?

req = new Ajax.Request('/PlaylistJSON.aspx', 
    { 

        method: 'GET',    
        parameters:  {
                     'id': playlistId
                     },
        onSuccess: function(transport,json){                                                                                    

            eval(transport.responseText);                              

            player.setPlaylist(playlist.tracklist,playlist.title, playlistId);
            player.firstTrack();

            if (play)
                player.playSong();  

         },
         onFailure: function() {
           //error

         }
     });

答案 1 :(得分:1)

如果您正在开发Windows Fiddler。使用Fiddler,您将能够确切地看到正在执行Ajax调用的请求以及来自服务器的响应。通过这种方式,您将知道URL是否正确,或者服务器是否正在响应某些不同于200 / OK的状态代码。

答案 2 :(得分:0)

是的,Page PlayListJSon.aspx位于根目录中。