3

こんにちは、私はGoogleのChrome拡張機能により、HTTPサイトへのHTTPSサイトからのリクエストを送信することに奇妙な問題を抱えていますすべての...Chromeの拡張機能からHTTPSからHTTPに要求を送信する

jquery.js:6混在したコンテンツ: 'https://www.google.co.in/webhp?hl=en'のページがHTTPS経由でロードされましたが、安全でないXMLHttpRequestエンドポイント 'http://ip/stats/search.php?keywords=apple'が要求されました。このリクエストはブロックされました。 HTTPS経由でコンテンツを配信する必要があります。

これはサイトに注入された私のコードです...

$(document).ready(function(){ 
    $('input[name=q]').keydown(function(e) { 
     if (e.keyCode == 13) { 
      v = $(this).val(); 
      v=encodeURI(v); 
     $.ajax({ 
     type: 'POST', 
     url: 'http://myipaddress/stats/search.php?keywords='+v, 
     data:{'search':v}, 
     success: function(data){ 
     //something.... 
     } 
     }); 
      } 


    }); 
    }); 

manifest.jsonを

{ 
    "name": "Ads", 
    "version": "0.0.1", 
    "manifest_version": 2, 
    "description": "Injecting stuff", 

     "background": 
     { 
     "scripts": ["jquery.js","background.js"] 
       }, 
      "browser_action": { 
     "default_title": "Inject!" 
      }, 
     "permissions": [ 
     "https://*/*", 
     "http://*/*", 
     "tabs" 
     ],"content_scripts" : [ 
     { 
     "js": ["jquery.js", "inject.js"], 
      "matches": ["*://*/*"] 
     } 
     ] 
     } 

答えて

0

これがセキュリティ機能です。ほとんどの(すべての)最新のブラウザーでは、HTTPSを介してすべてのコンテンツをロードするためにHTTPSドメインが必要です。すべての安全でない(HTTP)要求はブロックされます。

しかし、this SO threadをチェックアウトしたい場合は、解決策につながるいくつかの興味深いリンクがあります。

+0

スレッドはあまり助けにはなりませんでしたが、まだおかしくなりました...この問題を解決できるものはありますか? – Lisa

+0

@Lisa残念ながら、いいえ。その周りには道はない。 – cyberbit

0

コンテンツのスクリプトからページの起源のためにリクエストを行うことができない場合は、それをバックグラウンドスクリプトに委譲します。

Send a messageをバックグラウンドスクリプトに指定してリクエストを行い、応答を返します。非同期で応答することを示すために、ハンドラからreturn trueに覚えておいてください。

+0

私はこれのためのいくつかのサンプルコードを提供できますか? – Lisa

+0

例として[this](http://stackoverflow.com/questions/7699615/cross-domain-xmlhttprequest-using-background-pages/7699773#7699773)へのリンクされた質問リンク。 – Xan

関連する問題