我有一个JSP文件,该文件正在调用发REST往远程服务器的post调用。该请求正在处理中,但在远程计算机中处于挂起状态,状态为已取消。你能帮忙吗?
REST
这是JSP的一部分:
<tr> <td><button id="registerBtn" onclick="registerClick()">Register</button></td> <td><button id="loginBtn" onclick="postOnClick()">Log in</button></td> </tr> </table> <script type='text/javascript'> function registerClick() { /* var params = "{realm: astra, subjectId: " + document.getElementById('usrInpt').value + " , authInfo: omsspass}"; */ var first = document.getElementById('firstNameInpt').value; var last = document.getElementById('lastNameInpt').value; var user = document.getElementById('usrInpt').value; var password = document.getElementById('passInpt').value; var email = document.getElementById('emailInpt').value; var http = new XMLHttpRequest(); var url = "http://localhost:8080/authJ/v0/authJ/users?realm=JOES_PIZZA&uid=" + user +"&firstname=" + first + "&lastname=" + last + "&password=" + password + "&email=" + email; //var params = "{realm: astra, subjectId: " + document.getElementById('usrInpt').value + " , authInfo: omsspass}"; http.open("POST", url, true); //http.setRequestHeader("Content-type", "application/json"); http.onreadystatechange = function() { if (http.readyState == 4 && http.status == 200) { document.open(); document.write(http.responseText); } }; http.send(); } </script>`
这是java代码
:`@POST @Path("/users") public Response createUser(@QueryParam("uid")String uid, @QueryParam("firstname") String firstName, @QueryParam("lastname") String lastName, @QueryParam("email")String email, @QueryParam("password")String password, @QueryParam("realm") String realm) { //readProperties(); String tokenID = getToken(); StringBuffer openAmUrl = new StringBuffer().append("http://").append(openAmIp).append(openAmWarName).append("/identity/create?"); openAmUrl.append("identity_name=").append(uid); openAmUrl.append("&identity_attribute_names=userpassword"); openAmUrl.append("&identity_attribute_values_userpassword=").append(password); openAmUrl.append("&identity_attribute_names=sn"); openAmUrl.append("&identity_attribute_values_sn=").append(lastName); openAmUrl.append("&identity_attribute_names=cn"); openAmUrl.append("&identity_attribute_values_cn=").append(firstName); openAmUrl.append("&identity_realm=/").append(realm); openAmUrl.append("&identity_type=user"); if (email != null){ openAmUrl.append("&identity_attribute_names=mail"); openAmUrl.append("&identity_attribute_values_mail=").append(email); } openAmUrl.append("&admin=").append(tokenID); URI uri = null; try { uri = new URI(openAmUrl.toString()); } catch (URISyntaxException e) { LOGGER.error("Exception " + e); e.printStackTrace(); } return Response.seeOther(uri).build(); } `
提前致谢!
我发现问题是由于跨域引起的-我通过编辑将在没有安全性的情况下启动的浏览器的执行文件来解决此问题-(–disable-web- security)希望这对其他人有所帮助!