gpt4 book ai didi

java - 如何从 Java Rest Web 服务返回 ajax 中的值?

转载 作者:搜寻专家 更新时间:2023-11-01 00:56:44 24 4
gpt4 key购买 nike

我有一个带有 HTML 和 JQuery 的 Web 应用程序,其中有一个登录表单。当我单击提交按钮时,我正在使用 ajax 使用 Post 请求将数据发送到 Web 服务。Web 服务是用 Java 构建的。

这是我的 html 表单:

<form id="mdxLogin" action="" method="post">
<div class="ui-content">
<p><input type="email" id="mdxEmail" name="mdxEmail" class="ui-field-contain" value="" placeholder="MDX Email" /> </p>
<p><input type="password" id="mdxPassword" name="mdxPassword" class="ui-field-contain" value="" placeholder="MDX Password" /></p>
</div>
<div class="ui-content">
<input type="submit" class="ui-field-contain" value="Login" id="sub"/>
</div>
</form>

下面是我发布到我的网络服务的 Ajax 代码

$("#mdxLogin").submit(function(e) {
e.preventDefault();
var mdxEmail = $("input[name=\"mdxEmail\"]").val();
var mdxPassword = $("input[name=\"mdxPassword\"]").val();

$.ajax({
type: "POST",
url:"http://localhost:8080/RestService/rest/loginService/login",
dataType:"json",
data: $("#mdxLogin").serialize(),
success: function(data, textStatus, jqXHR) {
// handle your successful response here
alert(data);
},
error: function(xhr, ajaxOptions, thrownError) {
// handle your fail response here
alert("Error");
}
});

})

下面是我的网络服务中的方法

@POST
@Path("/login")
@Produces(MediaType.TEXT_PLAIN)
public String login(@FormParam("mdxEmail") String mdxEmail, @FormParam("mdxPassword") String mdxPassword) {
System.out.println(mdxEmail);
DBStudent s = new DBStudent();
String url = null;

if (s.checkLogin(mdxEmail, mdxPassword)) {
url = s.getCalendar(mdxEmail, mdxPassword);
}

return url;
}

到目前为止,我设法做的是将数据发布到我的网络服务,但没有得到任何响应。我的问题是如何使用 Ajax 从我的 Web 服务访问返回的 URL?

最佳答案

在您的代码中,我发现了一个错误,应该会阻止它正常工作。在客户端,你对 jQuery 说预期的类型是 JSON,但服务器生成一个字符串,在你的例子中是一个 URL,它不是 JSON。因此 jQuery 在尝试解析接收到的数据时失败,因为它不是 JSON 数据。这个错误应该触发 jQuery 错误 block 。

在客户端应用这个改变:

dataType:"text"

如果您想测试您的代码而不用担心同源策略,您可以禁用它,查看这些线程

Disable firefox same origin policy

Disable same origin policy in Chrome

关于java - 如何从 Java Rest Web 服务返回 ajax 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22436018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com