QuickBase jQuery / Ajax调用益智游戏

时间:2012-05-11 19:52:09

标签: jquery xml ajax quickbase

在两天的大部分时间里,我对这个QuickBase jQuery / Ajax问题感到困惑。考虑在$(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)是通过将我的浏览器直接指向指定的网址创建的:https://www.quickbase.com/db/<mydbid&gt;?a = API_DoQuery&amp; query = {7.EX.235445}&amp; apptoken = &LT; myapptoken&GT;并将结果保存到testdata.xml。在我看来,jquery ajax调用应该产生与testdata.xml文件相同的结果。但事实并非如此。

Firebug xml窗格显示针对QuickBase网站执行的调用返回“XML解析错误:语法错误位置:moz-nullprincipal:{3e0d38f1-0e36-4adb-965e-d0e7d68ab0cb}行号1,第1列:重新加载获取源代码的页面:https://www.quickbase.com/db ...“

我在俯瞰什么?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

虽然可以编写自己的API的jQuery实现,但最好还是使用自己的javascript SDK。 https://github.com/QuickbaseAdmirer/Quickbase-JavaScript-SDK

您缺少的重要部分是获取“票证”的身份验证调用。提供应用程序令牌不足以执行DoQuery调用。您必须进行身份验证,然后使用发回的故障单执行更多API调用。对于网址请求,可以非常轻松地添加故障单&ticket=randomcharacters。对于XML请求,只需将<ticket>randomcharacters</ticket>添加到XML请求中即可。

https://github.com/QuickbaseAdmirer/Quickbase-JavaScript-SDK提供了有关如何使用Authenticate调用的更多信息。