Vous devez POST à l'API Fusion Tables à jour une colonne, mais actuellement, vous ne pouvez pas le faire directement à partir de JavaScript en tant que Google does not set the CORS headers pour autoriser la publication interdomaine dans son API. Donc, si vous voulez faire cela, vous devez "relayer" votre demande via votre serveur web ou quelque chose de similaire. Je le fais avec le script PHP suivant, puis j'envoie la requête via JavaScript à mon script PHP. Et enfin, vous devez authenticate yourself using OAuth.
$url = "http://www.google.com/fusiontables/api/query";
$relay = new PostRelay($url,$_POST);
echo $relay->relay();
Et en classe PostRelay est défini la méthode relay()
, la $_POST
détient toutes les données affichées (représentés par $this->data
dans ma classe):
public function relay()
{
$url = $this->getUrl();
$this->curlHandler = curl_init($url);
curl_setopt($this->curlHandler, CURLOPT_POST, true);
curl_setopt($this->curlHandler, CURLOPT_RETURNTRANSFER, true);
curl_setopt($this->curlHandler, CURLOPT_TIMEOUT, 30);
curl_setopt($this->curlHandler, CURLOPT_FOLLOWLOCATION, 1);
if($this->data != null) {
curl_setopt($this->curlHandler, CURLOPT_POSTFIELDS, $this->getData());
}
$remote_answer = curl_exec($this->curlHandler);
if(curl_errno($this->curlHandler) != 0) {
$msgErrorNo = "cURL Errornumber: ".curl_errno($this->curlHandler);
$msgError = "cURL Error: ".curl_error($this->curlHandler);
throw new RemoteException($url,$msgErrorNo." ".$msgError);
}
return $remote_answer;
}
Hey Stefan, pourriez-vous s'il vous plaît montrer comment cela peut être fait ici: –
Que voulez-vous dire par "ici"? Je peux vous montrer comment utiliser mon extrait de code. – Odi
Ok, je vois, vous voulez dire votre exemple de code ci-dessous. Cela fonctionne très bien pour afficher vos données. Maintenant, si vous souhaitez envoyer des données à Fusion Tables, vous devez utiliser un serveur Web intermédiaire, car Google n'autorise pas (encore?) La demande POST directe à partir de JavaScript sur leur API. Configurez mon script PHP dans votre serveur Web et envoyez la requête POST à ce script. Dans jQuery, vous pouvez utiliser $ .post (url-to-php-script, fonction-succès) pour cela. – Odi