2

1 つのパラメーターを使用して JavaScript から URL を呼び出したい場合、URL はその特定の要求に対する応答を返す必要があります。

応答は実際には次のようになります。

{"success":true,
 "result":  {"token":"4fc5ef2bd77a3","serverTime":1338371883,"expireTime":1338372183}
}

この URL をブラウザで直接試すと、同じ応答を簡単に取得できますが、javascript を使用すると機能しません。

テスト目的でサンプル コードを投稿しましたが、応答がありません。

電話をかけて応答を得る方法を教えてください。

前もって感謝します。

<html>
    <head>
        <script type="text/javascript">
            function getResponse()
            {
                var uname=document.testform.uname.value;

                $.ajax({
                type: 'POST',
                url: 'http://192.168.2.113/crm/webservice.php?operation=getchallenge&username='+uname,
                data: {},
                dataType: 'json',
                success: function(data) 
                { alert('got here with data'); },
                error: function() { alert('something bad happened'); }
                });

            }
        </script>
        <title>Test</title>
    </head>
    <body>
        <form name="testform" method="post">
            <div id="main" border="5" style="width:100%; height:100%;">
                <div id="sub" style="width:50%; height:50%;align:center;">
                    Username:<input type="text" name="uname">
                    <input type="button" name="ok" value="submit" onclick="getResponse();">
                </div>
            </div>
        </form>
    </body>
</html>
4

4 に答える 4

2

gdoronが、コードにjQueryを含めるのを忘れたと言った理由の1つ。しかし、主なことは、ドメイン名が交差するajaxを使用していることです。これが問題です。ブラウザにURLを入力すると、ブラウザからサイトに直接要求されるため、正常に機能します。ただし、ajaxを使用してそのようなクロスドメインのリクエストを送信することはできません。

別のWebサイトからデータを取得する場合は、JSONPまたはajaxクロスドメインを確認することをお勧めします。

于 2012-05-30T10:50:32.963 に答える
1

これはあなたを助けるかもしれません:

<html>
<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>

</head>
<body>

<div id="div1" hidden="true"> </div>

<button>Get External Content</button>



<script>
    $("#div1").load('http://192.168.2.113/crm/webservice.php?operation=getchallenge&username='+uname);

    $(document).ready(function(){
        $("button").click(function(){
            var t=$("#div1").text();
            alert(t);

        });
    });

</script>
</body>
</html>
于 2012-11-30T19:49:30.030 に答える
0

data関数に渡すパラメーターには応答successが含まれており、JSON を返すため、任意の部分に簡単にアクセスできます。

// (inside your ajax call)
success: function(data) {
    alert(data.result.token);
    alert(data.result.serverTime);
    alert(data.result.expireTime);
},
于 2012-05-30T10:44:44.387 に答える
0

jQueryライブラリが含まれていませんでした...

これを の先頭に追加します<head>:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

コンソールでエラーを確認する$と、定義されていないことがわかります。

于 2012-05-30T10:38:36.203 に答える