通过$ .ajax()POST更新Google Fusion Table Row

时间:2012-05-18 18:19:37

标签: jquery sql row google-fusion-tables

我尝试使用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>

1 个答案:

答案 0 :(得分:2)

高度建议不要在JavaScript代码中打印出访问令牌,任何查看源代码的人都可以看到它。

正如Odi所说,Trusted Tester API提供了一个很好的解决方案。以下是它的实例:

http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/javascript-api.html