0

この QuickBase の jQuery/Ajax の問題について、2 日間のほとんどの間頭を悩ませてきました。$(function()... 内で実行されている次の jquery コードを検討してください。

    <script type="text/javascript">
        $(function() { 
            $.ajax({
                type: "GET",
                url: "https://www.quickbase.com/db/<mydbid>", // <- returns error
                //url: "http://pfs.fedcap.com/testdata.xml",  // <- returns xml
                data: {
                    act:"API_DoQuery",
                    query:"{7.EX.235445}",
                    apptoken:"<myapptoken>"
                },
                dataType: "xml",
                error: function(xhr,status) {
                    alert("error");
                },
                success: function(xml) { 
                    alert("OK");
                }
            });
        });
    </script>

前述のように、QuickBase を指す URL はエラーを返しますが、xml ファイルを指す URL は期待どおりに xml を返します。しかし、ここにキッカーがあります: xml ファイル (testdata.xml) は、指定された URL をブラウザーで直接指定することによって作成されました: https://www.quickbase.com/db/<mydbid >?a=API_DoQuery&query={7.EX. 235445}&apptoken=<myapptoken> を実行し、結果を testdata.xml に保存します。jquery ajax呼び出しは、testdata.xmlファイルと同じ結果を生成する必要があるようです。しかし、そうではありません。

Firebug xml ペインは、QuickBase サイトに対して呼び出しを実行すると、"XML Parsing Error: syntax error Location: moz-nullprincipal:{3e0d38f1-0e36-4adb-965e-d0e7d68ab0cb} Line Number 1, Column 1:Reload the page toソースを取得: https://www.quickbase.com/db ..."

私は何を見落としていますか?何かご意見は?

4

1 に答える 1

2

API の独自の jQuery 実装を作成することは可能ですが、独自の JavaScript SDK を使用する方がはるかに優れています。https://github.com/QuickbaseAdmirer/Quickbase-JavaScript-SDK

見逃している重要な部分は、「チケット」を取得するための認証呼び出しです。DoQuery 呼び出しを実行するには、アプリケーション トークンを提供するだけでは不十分です。認証してから、返送されたチケットを使用して、API 呼び出しをさらに実行する必要があります。URL リクエストの場合、チケットは非常に簡単に追加できます&ticket=randomcharacters。XML リクエストの場合は、XML リクエストに追加<ticket>randomcharacters</ticket>するだけです。

https://github.com/QuickbaseAdmirer/Quickbase-JavaScript-SDKには、Authenticate 呼び出しの使用方法に関する詳細情報があります。

于 2012-08-06T18:34:14.733 に答える