2016-05-09 1 views
1

ブラウザにAJAXリクエストがあります。今私はTVMLプロジェクトでJSONデータのGETリクエストを使用する必要があります。どのようにそれを行うことが良いですか?TVMLアプリケーションでAJAXリクエストを使用するには?

私はXMLHttpRequestを試していましたが、うまくいかず、何か間違っていましたか?

function performRequest(type, route, data) { 
     return $.ajax({ 
      type: type, 
      dataType: 'json', 
      url: url + route, 
      data: data 
     }); 
    } 

    function getChannels() { 
     log(' > get channels'); 
     return performRequest('GET', 'channel/list', { 
      id: browserId 
     }).then(function (response) { 
      response.data.forEach(function (channel) { 
       channels[channel.id] = channel; 
      }); 
     }); 
    } 

答えて

0

あなたのコードはXMLHTTPRequestではなくjqueryを使用しているようです。個人的に私はTVJSでjqueryを実行するのに成功しませんでした。なぜなら、TVJSが満足していないDocumentクラスについていくつかの仮定をしているからです。私はこの問題を詳細に分析しなかった、おそらくあなたはいくつかの回避策を見つけることができます。

あなたはネイティブXMLHTTPRequestを持つJSONリソースをダウンロードしたい場合は、このような何かしてみてください:

/** 
* Downloads a JSON resource 
* 
* @param {Object}  options     The options parameter. 
* @param {string}  options.resourcePath Path to the JSON 
* @param {Function} options.success   On success, will be called with the resulting JSON object 
* @param {Function} [options.error]   Error callback 
*/ 
getJSON(options) { 

    var resourceXHR = new XMLHttpRequest(); 
    resourceXHR.responseType = "json"; 
    resourceXHR.addEventListener("load", (function() { 
     options.success(resourceXHR.response); 
    })); 
    resourceXHR.addEventListener("error", (function() { 
     options.error({status: resourceXHR.status, statusText: resourceXHR.statusText}); 
    })); 
    resourceXHR.open("GET", options.resourcePath, true); 
    resourceXHR.send(); 
} 
0

をあなたはTVMLアプリケーションを構築するためのフレームワークatvjsを試みたことがありますか?それは、従来のTVMLアプリの基本的な煩雑さと複雑さを抽象化して、ノイズをあまり使わずにアプリケーションを構築し、素早く試作することができます。 atvjs

、AJAXを約束として実装され、あなたは以下のような何かができる:

ATV.Ajax.get('http://your_url') 
     .then((response) => /* do something with response */) 
     .catch((error) => /* handle errors */); 
関連する問題