2011-02-07 5 views
1

Google Chromeのプラグインをプログラミングしていますが、問題はjQuery $ .getを呼び出せないという問題です。コンソール:リソースの読み込みに失敗しました。

//popup.html

<script>    
     _get = function(url, callback) { 
      console.log("sending get"); 
      chrome.extension.sendRequest({action:'get',url:url}, callback); 
     } 

     _get('https://www.meebo.com/mcmd/start.cgi?type=mobile&allowIPChange=true', function(data) { 
      alert(data); 
     }); 
    </script> 

//background.html

<script src="jquery.js"></script> 
<script type="text/javascript"> 
    function onRequest(request, sender, callback) { 
     if (request.action == 'getJSON') { 
      $.getJSON(request.url, callback); 
     } 
     if (request.action == 'ajax') { 
      $.ajax({ 
       type : request.type,  
       url : request.url, 
       async : async, 
       success : callback 
      }); 
     } 
     if (request.action == 'get') { 
      $.get(request.url, callback); 
     } 

     if (request.action == 'post') { 
      $.post(request.url, request.data, callback); 
     } 
    } 

    chrome.extension.onRequest.addListener(onRequest); 
</script> 
+1

えー、どうやって部品が配線されているか説明できますか?あなたは明らかに要求を実行するために2つの異なる方法を使用しています(chrome組み込みおよびjquery)。最初のスニペットはどのように問題に関連していますか? – moritz

+0

問題は、Chromeのセキュリティ上の制約のためにコンテンツファイルでjQuery-ajax-functionsを使用できないため、popup.htmlでajaxリクエストを実行しています。chrome.extension.sendRequest({アクション: 'get'、url:url}、コールバック);それらはchrome.extension.onRequest.addListener(onRequest)でbackground.htmlにキャッチされています。バックグラウンドページには制限がないため、実行されます。失敗している部分は$ .get(request.url、callback)です。関数は呼び出されますが、結果はコンソール出力 "リソースのロードに失敗しました" –

答えて

0

問題のためのソリューションは、MeeboののSSL証明書が有効でないため、HTTPSではなくHTTPのみを使用することです。

関連する問題