За последние 24 часа нас посетили 16625 программистов и 1620 роботов. Сейчас ищут 1829 программистов ...

Кросдоменный ajax из вк на мой сайт

Тема в разделе "JavaScript и AJAX", создана пользователем Dron-Boy, 18 окт 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Ребят я тут пишу расширение для хрома что бы можно было при клике на кнопку в вк которая создается с помощью расширения делится записями с вк. Так вот мне нужно отправить 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):
    1. $.ajax({
    2.             type: "POST",
    3.             Origin:"https://vk.com",
    4.             crossDomain:true,
    5.             url: "http://мой сайт",
    6.             data: {getCoockiesid:1},
    7.             success: function (data){
    8.                 alert(data);
    9.             }
    10.         });
    запрос такой отправляю
    на сервере в 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"
    Что еще нужно?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а попробуй по хттп запроси
     
  3. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Не понял, объясни
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты попробовал по хттпс
    а ты попробуй по хттп без с
     
  5. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Это ты про origin?
     
  6. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Я так понял, что @igordata предлагает указать протокол http для адреса vk.com. Вот только я не могу понять, откуда вы взяли параметр "Origin" для метода $.ajax()
     
  7. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    На Хабре увидел Но там не было примеров а просто написано в ajax запросе прописываете origin: адрес а на сервере ответ Headeradd Access-Control-Allow-Origin "*"
     
  8. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    @Dron-Boy я не работал с API VK и не очень понимаю суть происходящего. Если вам зачем-то нужно отправлять заголовки при запросе на свой же сайт, то попробуйте так (хотя грызут меня сомнения, что это поможет) :
    Код (Javascript):
    1. $.ajax({
    2.     type: "POST",
    3.     beforeSend: function(request) {
    4.         request.setRequestHeader("Access-Control-Allow-Origin", "https://vk.com");
    5.         request.setRequestHeader("Access-Control-Allow-Methods", "GET, POST");
    6.         request.setRequestHeader("Access-Control-Allow-Headers", "Content-Type, X-Requested-With");
    7.     },
    8.     crossDomain: true,
    9.     url: "http://мой сайт",
    10.     data: {
    11.         getCoockiesid: 1
    12.     },
    13.     success: function(data) {
    14.         alert(data);
    15.     }
    16. });
     
  9. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    751
    Адрес:
    Татарстан
    и вроде бы надо указывать typeData : "jsonp"
     
  10. t1grok

    t1grok Новичок

    С нами с:
    29 янв 2017
    Сообщения:
    119
    Симпатии:
    32
    Из-за политики безопасности вам не удастся с защищенной страницы https обратиться к незащищенной http.

    В своем примере вы используете POST, но имейте ввиду, что если будете использовать еще и PUT, DELETE, OPTIONS, то этого будет недостаточно, т-к там выполняется еще preflight запрос.

    jsonp используется если на конечном ресурсе не разрешены кроссдоменные запросы, к тому же это позволит выполнять только GET запросы. И опять же с https на http это работать не будет.
     
  11. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    А какое решение будет работать?
     
  12. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Слушайте теперь вот та ошибка просто предуприждением выводится а ошибкой сейчас является

    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.