Ошибка Access-Control-Allow-Origin при отправке сообщения jQuery в API Google

Я много читаю для ' Access-Control-Allow-Origin * 'в заголовок. И я не знаю, как использовать здесь $ .getJSON, если применимо, потому что мне нужно добавить заголовок авторизации, и я не знаю, как это сделать без beforeCall из $ .ajax: /

Любой свет для этого тьма уу?

Это код:

<script src="http://www.google.com/jsapi"></script>

<script type="text/javascript">

var scope = "https://www.googleapis.com/auth/moderator";
var token = '';

function create(){
     if (token == '')
      token = doCheck();

     var myData = {
      "data": {
        "description": "Share and rank tips for eating healthily on the cheaps!", 
        "name": "Eating Healthy & Cheap", 
        "videoSubmissionAllowed": false
      }
    };

    $.ajax({

        url: 'https://www.googleapis.com/moderator/v1/series?key='+key,
        type: 'POST',
        callback: '?',
        data: myData,
        datatype: 'application/json',
        success: function() { alert("Success"); },
        error: function() { alert('Failed!'); },
        beforeSend: setHeader

    });
}

function setHeader(xhr) {

  xhr.setRequestHeader('Authorization', token);
}

function doLogin(){ 
    if (token == ''){
       token = google.accounts.user.login(scope);
    }else{
       alert('already logged');
    }
}


function doCheck(){             
    token = google.accounts.user.checkLogin(scope);
    return token;
}
</script>
...
...
<div data-role="content">
    <input type="button" value="Login" onclick="doLogin();">
    <input type="button" value="Get data" onclick="getModerator();">
    <input type="button" value="Create" onclick="create();">
</div><!-- /content -->
137
задан sideshowbarker 2 February 2019 в 04:28
поделиться

1 ответ

Существует немного взлома с php. И это работает не только с Google, но и с любым веб-сайтом Вы не управляете и не можете добавить Access-Control-Allow-Origin *

, Мы должны создать PHP-файл (напр. getContentFromUrl.php) на нашем веб-сервере и делают немного приема.

PHP

<?php

$ext_url = 

Существует немного взлома с php. И это работает не только с Google, но и с любым веб-сайтом Вы не управляете и не можете добавить Access-Control-Allow-Origin *

, Мы должны создать PHP-файл (напр. getContentFromUrl.php) на нашем веб-сервере и делают немного приема.

PHP

[110]

JS

$.ajax({
    method: 'POST',
    url: 'getContentFromUrl.php', // link to your PHP file
    data: {
        // url where our server will send request which can't be done by AJAX
        'ext_url': 'https://stackoverflow.com/questions/6114436/access-control-allow-origin-error-sending-a-jquery-post-to-google-apis'
    },
    success: function(data) {
        // we can find any data on external url, cause we've got all page
        var $h1 = $(data).find('h1').html();

        $('h1').val($h1);
    },
    error:function() {
        console.log('Error');
    }
});

, Как это работает:

  1. Ваш браузер с помощью JS отправит запрос к Вашему серверу
  2. , Ваш сервер отправит запрос к любому другому серверу и получит ответ от другого сервера (любой веб-сайт)
  3. , Ваш сервер отправит этот ответ на Ваш JS

, И мы можем сделать события onClick, поместить это событие на некоторую кнопку. Надежда это поможет!

POST['ext_url']; echo file_get_contents($ext_url); ?>

JS

$.ajax({
    method: 'POST',
    url: 'getContentFromUrl.php', // link to your PHP file
    data: {
        // url where our server will send request which can't be done by AJAX
        'ext_url': 'https://stackoverflow.com/questions/6114436/access-control-allow-origin-error-sending-a-jquery-post-to-google-apis'
    },
    success: function(data) {
        // we can find any data on external url, cause we've got all page
        var $h1 = $(data).find('h1').html();

        $('h1').val($h1);
    },
    error:function() {
        console.log('Error');
    }
});

, Как это работает:

  1. Ваш браузер с помощью JS отправит запрос к Вашему серверу
  2. , Ваш сервер отправит запрос к любому другому серверу и получит ответ от другого сервера (любой веб-сайт)
  3. , Ваш сервер отправит этот ответ на Ваш JS

, И мы можем сделать события onClick, поместить это событие на некоторую кнопку. Надежда это поможет!

0
ответ дан 23 November 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: