Ребят я тут пишу расширение для хрома что бы можно было при клике на кнопку в вк которая создается с помощью расширения делится записями с вк. Так вот мне нужно отправить ajax запрос сколько не перепробовал он все пишет jquery-3.2.1.min.js:4 Mixed Content: The page at 'https://vk.com/al_feed.php' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://мой сайт'. This request has been blocked; the content must be served over HTTPS. Код (Javascript): $.ajax({ type: "POST", Origin:"https://vk.com", crossDomain:true, url: "http://мой сайт", data: {getCoockiesid:1}, success: function (data){ alert(data); } }); запрос такой отправляю на сервере в htaccess прописал Header add Access-Control-Allow-Origin "*" Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" Что еще нужно?
Я так понял, что @igordata предлагает указать протокол http для адреса vk.com. Вот только я не могу понять, откуда вы взяли параметр "Origin" для метода $.ajax()
На Хабре увидел Но там не было примеров а просто написано в ajax запросе прописываете origin: адрес а на сервере ответ Headeradd Access-Control-Allow-Origin "*"
@Dron-Boy я не работал с API VK и не очень понимаю суть происходящего. Если вам зачем-то нужно отправлять заголовки при запросе на свой же сайт, то попробуйте так (хотя грызут меня сомнения, что это поможет) : Код (Javascript): $.ajax({ type: "POST", beforeSend: function(request) { request.setRequestHeader("Access-Control-Allow-Origin", "https://vk.com"); request.setRequestHeader("Access-Control-Allow-Methods", "GET, POST"); request.setRequestHeader("Access-Control-Allow-Headers", "Content-Type, X-Requested-With"); }, crossDomain: true, url: "http://мой сайт", data: { getCoockiesid: 1 }, success: function(data) { alert(data); } });
Из-за политики безопасности вам не удастся с защищенной страницы https обратиться к незащищенной http. В своем примере вы используете POST, но имейте ввиду, что если будете использовать еще и PUT, DELETE, OPTIONS, то этого будет недостаточно, т-к там выполняется еще preflight запрос. jsonp используется если на конечном ресурсе не разрешены кроссдоменные запросы, к тому же это позволит выполнять только GET запросы. И опять же с https на http это работать не будет.
Слушайте теперь вот та ошибка просто предуприждением выводится а ошибкой сейчас является Failed to load http://мойсайт The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. Origin 'chrome-extension://opdjklgkmdlonbpbmjonnpedhlhjeppj' is therefore not allowed access.