xbmc jsonrpc и jquery

В основном я пытаюсь опросить свой xbmc с помощью jsonrpc со следующим:

_data = '{"jsonrpc":"2.0", "method":"VideoLibrary.GetMovies", "id":"1"}';
_XBMCHOST = "http://192.168.0.140:8080/jsonrpc";

$.ajax({
      dataType: 'jsonp',
      data: _data,
      jsonp: 'jsonp_callback',
      url: _XBMCHOST,
      success: function () {
          console.log( 'here here here');
      },

      error:function( result ){
         console.log( result );
         console.log('error!!!');
      }
  });

Но я продолжаю получать parsererror. Однако я могу успешно запустить тот же пост через curl и получить желаемые результаты, то есть:

curl -i -X POST -d '{"jsonrpc":"2.0", "method":"VideoLibrary.GetMovies", "id":"1"}' http://192.168.0.140:8080/jsonrpc

Любые предложения или помощь будут оценены.


person SS44    schedule 15.05.2011    source источник
comment
Попробуйте поставить " " вокруг свойств? Возможно, вы используете зарезервированное слово.   -  person SeanJA    schedule 15.05.2011
comment
Поддерживает ли XBMC jsonp? Я не знаю, но быстрый поиск не дает ничего, что предполагало бы, что это так. Попробуйте фрагмент curl с URL http://192.168.0.140:8080/jsonrpc?callback=jsonp_callback, чтобы убедиться, что он работает.   -  person Rob Cowie    schedule 15.05.2011
comment
@seanja, похоже, не имеет значения. Команда @rob curl отлично работала с обратным вызовом.   -  person SS44    schedule 15.05.2011


Ответы (1)


Используемая вами команда curl — это POST, тогда как команда jquery — это GET. Попробуйте это вместо этого:

$.ajax({
  dataType: 'jsonp',
  data: _data,
  jsonp: 'jsonp_callback',
  url: _XBMCHOST,
  type: 'post', //make this a post instead of a get
  success: function () {
      console.log( 'here here here');
  },

  error:function( result ){
     console.log( result );
     console.log('error!!!');
  }
});
person SeanJA    schedule 15.05.2011
comment
хороший улов, но не решил проблему. После некоторого поиска оказалось, что это ограничение браузера - johnhamelink. com/2010/07/combat-crossdomain-post-problems-ajax - person SS44; 16.05.2011
comment
Ну... да... это было бы проблемой, хотя, по-видимому, есть способ ее обойти http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ - person SeanJA; 16.05.2011
comment
Вы спасли мою ночь!!!! Я пытался получить доступ к xbmc API с помощью javascript, и ваше решение идеально! - person maxime1992; 04.10.2015