0

クライアント側のトークン認証を機能させようとしています。何らかの理由で、私の Java スクリプトがブラウザにロードされないようです。script タグを含めました。現在、ページがハングアップし、永遠にロードし続けます。

この機能を実装するために、投稿で受け取ったソリューションの 1 つを参照しました。 プレーンな Javascript/AJAX を使用してクライアント側のトークンベースの認証を実装する

これが私のhtmlです

*<head runat="server">
    <title></title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"  type="text/javascript"></script>
        <script src="Scripts/lookup.js" type="text/javascript"></script>
    <script src="Scripts/getdatatype.js" type="text/javascript"></script>
</head>
<body>
    <section class="webdesigntuts-workshop">
    <form id="form1" runat="server">
         <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" >

         </asp:ScriptManager>    
    <div>

        <asp:TextBox type="search" name="search" id="sform" placeholder="What are you looking for?" runat="server" />       
         <asp:TextBox type="search" name="hdnText" id="hdnText" runat="server" />

      <button id="Button1" onclick="lookup();" type="button">Search</button>

    </div>
    <div>
        <p> </p>
    </div>

            <div>
                 <button id="Getdtbtn"  type="button">Get Datatypes</button>
            </div>
        </form>
        </section>
</body>
</html>*

これが私のJavaスクリプトです。

document.onload=function () {
        var token = isEmpty(window.localStorage.getItem("token"))? gettoken():window.localStorage.getItem("token");

        document.getElementById('Getdtbtn').onclick(function () {
            if (isEmpty(token)) {
                token = gettoken();
            }

            var request = function () {
                $.ajax
             ({
                 type: "GET",
                 url: "http://demo.in-com.com/Xtensions/V4/api/datatypes",
                 data: '{}',
                 beforeSend: function (xhr) {
                     xhr.setRequestHeader('Authorization', window.localStorage.getItem("Basic " + 'token'));
                 },
                 dataType: "json",
                 timeout: 5000,
             });
                request.success(function () {
                    alert('success!');
                });
                request.error(function (httpObj, textStatus) {
                    if (httpObj.status == 401)
                        gettoken();
                        request();
                });
            }
        });
        };

    function gettoken() {
        var credentials = {
            username: "**",
            password: "***",
            domain: "",
            extensionsAppId:"{****}"

        };
        var url = "http://demo.in-com.com/Xtensions/V4/api/login/AuthenticateExternal"
        $.ajax({
            url: url,
            type: 'GET',
            data: { username: credentials.username, password: credentials.password, domain: credentials.domain, extensionsAppId: credentials.extensionsAppId },
            success: function (Data) {
                window.localStorage.setItem('token',  Data.token.split('"').join(''));
            },
            beforeSend: function (xhr) { xhr.setRequestHeader('Authorization', window.localStorage.getItem('token')); },
            error: function () {
                alert('Error occured');
            }
        });

    }

*

何がうまくいかないのかについて何か考えはありますか?

4

0 に答える 0