我尝试使用jQuery $ .ajax()方法更新Google融合表中的行(如下面的php页面所示)。如果我改变了'类型'在。$ .ajax()方法中获取GET并尝试SELECT语句我得到了返回的预期数据,但是当我尝试使用POST的UPDATE语句时没有任何反应。查询语句基于以下documentation。关于我做错的任何建议都将非常感激。
<!DOCTYPE html>
<html>
<head>
<?php
//Include fusion table php libraries
include('Libs/clientlogin.php');
include('Libs/sql.php');
include('Libs/file.php');
$username=<MY USER NAME>;
$password=<MY PASSWORD>;
$token=ClientLogin::getAuthToken($username,$password);
$ftclient=new FTClientLogin($token);
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<script>
var token = "<?= $token ?>";
function updateTable() {
var URL = "https://www.google.com/fusiontables/api/query/?sql=UPDATE <TABLEID> SET <COLUMN NAME> ='new value' WHERE ROWID =<SOME ROW ID>";
$.ajax({
type: "POST",
url: URL,
dataType: "jsonp",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
//name_startsWith: request.term
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "GoogleLogin auth=" + token);
},
success: function run(data) {},
});
}
</script>
<a href="" " data-role="button " onclick="updateTable(); return
false " rel="external ">Post</a>
</body>
</html>
答案 0 :(得分:2)
我高度建议不要在JavaScript代码中打印出访问令牌,任何查看源代码的人都可以看到它。
正如Odi所说,Trusted Tester API提供了一个很好的解决方案。以下是它的实例:
http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/javascript-api.html