Привет всем, у меня возникла странная проблема с отправкой запроса с сайта https на http-сайт с расширением google chrome.
jquery.js: 6 Смешанное содержимое: страница https://www.google.co.in/webhp?hl=ru была загружена через 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": ["*://*/*"] } ] }
Это функция безопасности. Большинство (всех?) Современных браузеров требуют, чтобы домены HTTPS загружали весь контент через HTTPS. Любые ненадежные (HTTP) запросы будут заблокированы.
Однако вы можете проверить этот поток SO , у него есть интересные ссылки, которые могут привести к решению.
Если вы не можете сделать запрос из сценария содержимого из-за происхождения страницы, делегируйте его в фоновый скрипт.
Отправьте сообщение в фоновый скрипт, чтобы он попросил его сделать запрос, затем верните ответ. Не забудьте return true
из обработчика, чтобы указать, что вы будете реагировать асинхронно.