1

jQuery $.ajax() メソッドを使用して Google フュージョン テーブルの行を更新しようとしています (以下の php ページを参照)。.$.ajax() メソッドの「タイプ」を GET に変更して SELECT ステートメントを試行すると、予想されるデータが返されますが、POST を使用して UPDATE ステートメントを試行しても何も起こりません。クエリ ステートメントは、次のドキュメントに基づいています。私が間違っていることについての提案は非常に高く評価されます。

<!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>
4

1 に答える 1

2

JavaScript コード内のアクセス トークンを印刷しないことを強くお勧めします。この場合、ソースを表示するすべてのユーザーに表示されます。

Odi が述べたように、Trusted Tester API は優れたソリューションを提供します。実際の例を次に示します。

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

于 2012-05-22T22:15:17.643 に答える