繁体   English   中英

无法使用参数从html / javascript调用rest Web服务

[英]unable to call rest web service from html/javascript with parameter

我是Web服务和html / javascript的新手。 我已经用Java编写了一个REST Web服务。 它接受html表单中的用户名,然后再次将其返回到同一html页面。 我已经使用alert()函数调用显示了它。

我的网络服务代码是

@Path("/hello")
public class Hello {

@GET
    @Path("hello/{username}")
    @Produces(MediaType.TEXT_HTML)
    public String ldap(@PathParam("username") String username)
    {
    return username;
    }
}

我的jsp文件是first.jsp(仅粘贴选定的代码,因此关于html,body标签没有错误)

<script type="text/javascript">
var xmlhttp;
function callservice()
{
        alert("I am in javascript");
        var user = document.getElementById("uid");
        xmlhttp = new XMLHttpRequest();
        var url = "http://localhost:8080/de.vogella.workspace.first/rest/hello/" + user.value;
        xmlhttp.open('GET', url, true);
        alert("after url");
        xmlhttp.send(null);
        alert("after send");
        xmlhttp.onreadystatechange = function(){
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                {
                alert("In functn");
                alert(xmlhttp.responseText);
                }

        }

    }
</script>

    <form style="margin-left:300px" id="f1" method="GET" onsubmit="callservice()" >
            <fieldset style="margin: 50px"> 
            <legend>Login</legend>
                <p>
                User name: <input  type="text" id="uid" name="username"><br>
                <p> 

                <input type="submit" value="Submit"> 
                <p id="qwe"> This HTML</p>
            </fieldset>
        </form>

我从first.jsp文件中调用了Web服务。 我没有任何参数地做同样的事情,我从Web服务中返回了一些硬编码的值,然后它起作用了。 但是我需要传递参数来验证用户身份。

我认为我在参数传递中做错了。

当我单击提交按钮时,我可以在浏览器中看到以下网址

http://xxx.xxx.xxx.x:8080/de.vogella.workspace.first/first.jsp?username=john

当我将Web服务作为独立测试时,它看起来像

http://xxx.xxx.xxx.x:8080 / de.vogella.workspace.first / rest / hello

谁能帮我解决这个问题。

谢谢。

您的问题是javascript正在运行一个ajax调用,完成后将提交表单。 完全删除表单,只需要一个按钮和输入框即可调用您的JavaScript。 如果可能,您还应该考虑使用jquery。

查看此链接以了解您的问题。 如何防止表格被提交?

调试技巧也可以使用firebug网络面板查看从代码实际生成的请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM