1

我有一个 JSP 文件,它正在调用一个RESTpost 调用,该调用对远程服务器进行获取。该请求正在处理中,但在远程机器中处于已取消状态。你能帮忙吗?

这是 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();
    }
`

提前致谢!

4

1 回答 1

1

我发现这是由于跨域引起的问题-我通过编辑将在没有安全性的情况下启动的浏览器的执行文件来修复它-(--disable-web-security)希望这对其他人有帮助!

于 2013-08-08T10:16:16.557 回答