-1

您好,我在 Eclipse 中使用 Play framework 1.2.3,我想用这个 java 请求调用一个控制器方法,但是当我点击按钮时没有任何反应。有谁知道出了什么问题?

此致。

<script type="text/javascript">   
    $("#request").click(function(){  

            var reqphone = $('#reqPhone').val();  
            var key = $('#accesscode).val();    
            var fro = $('#from').val();  
            var too = $('#to').val();  
            var myPhone = $('#userPhone').val();  

            var action = #{jsAction @reversetest(':consumer',':accessKey', ':usersPhone', ':reqPhone',':from', ':to') /};  

            $.ajax({  
                type:"GET",  
                url =  action({consumer: 'marcus', accessKey: key, usersPhone: myPhone, reqPhone: reqphone, from: fro, to: too}),  
                success: function (response)  
                {
                    $("#XMLArea").val(response);  
                }
            });

    })
    </script>  

    <input type="button" id="request" class="button" name="request" style="float: left; top: 50px; left: 310px; position: absolute;"></input>  

我将添加更多信息,因为我已经更改了您提到的内容,但它仍然无法正常工作这是反向测试控制器方法

public static void reversetest(@Required String consumer, @Required String accessKey, @Required String usersPhone,
                @Required String reqPhone, @Required Integer from, @Required Integer to)
    {
        // Start time
            long _started = System.currentTimeMillis();

            // Send the query
            ResultObject result = models.functions.Reverse.v1(consumer, Telephones.ResponseTypes.CALLERID, accessKey, reqPhone,
                    usersPhone, from, to, (String) request.remoteAddress);
            // Statistics
            QueryCount++;
            if (result.Code != ResultCodes.OK)
                ErrorCount++;
            Long elapsed = (System.currentTimeMillis() - _started);
            QueryTime += elapsed;
            if (elapsed > MaxTime)
                MaxTime = elapsed;

            // Render
            if(result.Code == ResultCodes.NOTAUTHORIZED)
                render(result.Code);
            else if(result.Code == ResultCodes.TRANSFORMERROR)
                render(result.Code);
            else if(result.Code == ResultCodes.BADREQUEST)
                render(result.Code);
            else if(result.Code == ResultCodes.JAVAEXCEPTION)
                render(result.Code);
            else if(result.Code == ResultCodes.NOTHREADS)
                render(result.Code);


            renderXml(result.getXMLResponse());
    }

这是完整的html代码

<head>
    <title></title>
    <style type="text/css">
        .button {
            -moz-box-shadow: inset 0px 1px 0px 0px #ffffff;
            -webkit-box-shadow: inset 0px 1px 0px 0px #ffffff;
            box-shadow: inset 0px 1px 0px 0px #ffffff;
            background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #ededed), color-stop(1, #dfdfdf) );
            background: -moz-linear-gradient( center top, #ededed 5%, #dfdfdf 100% );
            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#dfdfdf');
            background-color: #ededed;
            -moz-border-radius: 6px;
            -webkit-border-radius: 6px;
            border-radius: 6px;
            border: 1px solid #dcdcdc;
            display: inline-block;
            color: #777777;
            font-family: arial;
            font-size: 15px;
            font-weight: bold;
            padding: 6px 24px;
            text-decoration: none;
            text-shadow: 1px 1px 0px #ffffff;
        }

            .button:hover {
                background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #dfdfdf), color-stop(1, #ededed) );
                background: -moz-linear-gradient( center top, #dfdfdf 5%, #ededed 100% );
                filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dfdfdf', endColorstr='#ededed');
                background-color: #dfdfdf;
            }

            .button:active {
                position: relative;
                top: 1px;
            }

        .text {
            border: 2px solid gray;
        }

        .textarea {
            width: 900px;
            height: 300px;
            border: 3px solid gray;
            padding: 5px;
            font-family: Tahoma, sans-serif;
            background-image: url(bg.gif);
            background-position: bottom right;
            background-repeat: no-repeat;
        }

        .label {
            color: #B4886B;
            font-weight: bold;
            display: block;
            width: 150px;
            float: left;
        }

            label:after {
                content: ": ";
            }
    </style>

    <script type="text/javascript">
    $("#request").click(function(){

        var reqphone = $('#reqPhone').val();
        var key = $('#accesscode').val();
        var fro = $('#from').val();
        var too = $('#to').val();
        var myPhone = $('#userPhone').val();
        var action = #{jsAction @reversetest(':consumer',':accessKey', ':usersPhone', ':reqPhone',':from', ':to') /};

    $.ajax({
        type:"GET",
        url:@{Testbench.reversetest},
        data: = action{consumer: 'marcus', accessKey: key, usersPhone: myPhone, reqPhone: reqphone, from: fro, to: too},
        success: function (response)
        {
            $("#XMLArea").val(response);
        }
    });

})
    </script>
    <script type="text/javascript">
        function setbg(color) {
            document.getElementById("styled").style.background = color
        }


        //@Required String consumer, @Required String accesscode, @Required String usersPhone,
        //@Required String reqPhone, @Required Integer from, @Required Integer to


    </script>
</head>
<body style="background-color:#C3C3C3">
    <div style="float:left; position:absolute; left: 200px;">
        <header id="header1" style="width: 915px; height: 100px; border-bottom: 1px inset gray; background-image:url(pictures/mobisafeheader.jpg);" ></header>
        <br>
        <div id="sendDiv" style="float:left; top:120px; position:absolute;">
            <datalist id="numbers">
                <option>07086000000</option>
                <option>07074000000</option>
            </datalist>
            <datalist id="accesscodes">
                <option>marcus</option>
                <option>jesper</option>
            </datalist>

               <label class="label" id="phone">Your phone</label> 
               <input type="text" id="userPhone" class="text" list="numbers" style="float:left; left:150px; position:absolute;"></input>
                <br></br>
                <label class="label" id="accesscodeLbl" style="top:35px; float:left; position:absolute;">Your accesscode</label><input type="text" id="accesscode" class="text" list="accesscodes" style="float:left; left:150px; top:30px; position:absolute;"></input>
                <br></br>
                <label class="label" id="reqPhoneLbl" style="top:70px; float:left; position:absolute;">Calling Phone</label><input type="text" id="reqPhone" class="text" style="float:left; left: 150px; top: 60px; position: absolute;"></input>
                <input type="hidden" value="1" class="text" name="from"></input>
                <br></br>
                <input type="hidden" value="1" class="text" name="to"></input> 
                <input type="button" id="request" name="request" style="float: left; top: 50px; left: 310px; position: absolute;"></input>

        </div>
        <div id="textAreaDiv" style="position:absolute; float:left; top:250px;" draggable="false">
            <br></br>
            <br></br>
            <label class="label">URL</label>
            <input id="URL" type="text" class="text" style="width:745px;"></input>
            <br></br>
            <textarea id="XMLArea" class="textarea" draggable="false" onfocus="this.value=''; setbg('#e5fff3');" onblur="setbg('white')"></textarea>
        </div>
    </div>


</body>

希望这将帮助您认识到我的错误。

此致。

4

3 回答 3

0

缺少 URL 部分。

$.ajax({  
    type:"GET",  
    url: 'your url',
    data : action({consumer: 'marcus', accessKey: key, usersPhone: myPhone, reqPhone: reqphone, from: fro, to: too}),  
    success: function (response)  
    {
             // catch data coming back from server
    }
});

使用数据部分将数据发送到服务器。

于 2013-05-27T11:31:32.917 回答
0

Url = should be data

$.ajax({  
    type:"GET",  
    url: 'url.url',
    data : action({consumer: 'marcus', accessKey: key, usersPhone: myPhone, reqPhone: reqphone, from: fro, to: too}),  
    success: function (response)  
    {
        $("#XMLArea").val(response);  
    }
});
于 2013-05-27T11:23:51.647 回答
0

你错过了 ' at var key = $('#accesscode').val();

var key = $('#accesscode).val();

它应该是

var key = $('#accesscode').val();

还有一件事

$.ajax({  
    type:"GET",  
    url =  action({consumer: 'marcus', accessKey: key, usersPhone: myPhone, reqPhone: reqphone, from: fro, to: too}),  
    success: function (response)  
    {
        $("#XMLArea").val(response);  
    }
});

它应该是

$.ajax({  
    type:"GET",  
    url : 'your url', 
    data: {consumer: 'marcus', accessKey: key, usersPhone: myPhone, reqPhone: reqphone, from: fro, to: too},  
    success: function (response)  
    {
        $("#XMLArea").val(response);  
    }
});
于 2013-05-27T11:15:36.850 回答