2

我想用一个参数从 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 的原因之一。但主要是您使用的是跨域名的ajax,这是问题所在。如果您在浏览器中键入 url,它将正常工作,因为它将直接从浏览器请求站点。但是你不能像这样使用 ajax 跨域发送请求。

如果您想从不同的网站获取数据,我建议您查看 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

您没有包含 jQuery 库...

将此添加到顶部<head>

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

如果您检查控制台是否有错误,您将看到$未定义的错误。

于 2012-05-30T10:38:36.203 回答
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 回答