您必须发布到 Fusion Tables API 才能更新列,但目前您无法直接从 JavaScript 执行此操作,因为Google 不设置 CORS 标头 http://code.google.com/p/fusion-tables/issues/detail?id=1035允许跨域发布到他们的 API。
因此,如果您想这样做,您必须通过网络服务器或类似的东西“中继”您的请求。我使用以下 PHP 脚本执行此操作,然后通过 JavaScript 将请求发布到我的 PHP 脚本。最后,你必须使用 OAuth 验证您自己的身份 https://developers.google.com/fusiontables/docs/articles/oauthfusiontables.
$url = "http://www.google.com/fusiontables/api/query";
$relay = new PostRelay($url,$_POST);
echo $relay->relay();
在 PostRelay 类中的方法relay()
被定义,则$_POST
保存所有发布的数据(由$this->data
在我的课堂上):
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;
}