Проблема с Ajax.Request с использованием JSon и Prototype

Я использую следующую функцию для загрузки списка воспроизведения песен из PlayListJSON.aspx, но что-то кажется неправильным, вызывается evrytime OnFailure, я не могу отлаживать его дальше. любая помощь была бы действительно gr8.

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
    }
  });
}

Можете ли вы поместить код, который генерирует JSON, в блок try-catch? Где блок catch возвращает сообщение об исключении. Таким образом, мы можем увидеть, что не получается.

thoughtcrimes 11.12.2008 01:55
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
2
1
1 917
3

Ответы 3

Как правило, OnFailure вызывается, когда страница, на которую вы вызываете, не может быть достигнута по какой-либо причине.

Вы уверены, что URL-адрес /PlaylistJSON.aspx действителен?


Вы пробовали передавать аргумент параметров вместо того, чтобы указывать их как часть URL-адреса?

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

         }
     });

Да, страница PlayListJSon.aspx находится в корневом каталоге.

Попробуйте загрузить этот URL вручную. Его можно развернуть в корневом каталоге, но он по-прежнему недоступен и возвращает код ошибки.

Mads Hansen 25.10.2008 16:34

Даже когда я даю URL-адрес типа 'dirname / PlaylistJson.aspx, он дает ту же ошибку .. onFailure

Jay Mooney 25.10.2008 17:09

Что происходит, когда вы переходите по этому URL-адресу в своем браузере?

Mark Biek 25.10.2008 17:13

он работает нормально ... Я имею в виду, что когда я передаю Querystring, например PlayListJson.aspx? id = 32, он отображает результат в формате Json

Jay Mooney 25.10.2008 17:17

Если вы разрабатываете в Windows, установите Скрипач. С помощью Скрипач вы сможете точно увидеть, какой запрос выполняет вызов Ajax и какой ответ приходит от сервера. Таким образом вы узнаете, правильный ли URL-адрес или сервер отвечает с кодом состояния, отличным от 200 / OK.

Другие вопросы по теме