2013-01-06 29 views
1

我在被调用REST后调用,它做一个到达一个远程服务器上的JSP文件。 请求正在处理中,但在取消状态的远程计算机中处于暂挂状态。 可以请你协助吗?重定向从JSP是类标志和状态取消

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

在此先感谢!

+0

让我看看,如果我理解这一点:*秒*通话(即Response.seeOther(URI).build())是具有状态为“取消”的人吗? –

+0

其实我发现,在http.onreadystatechange的http.readyState是4,但http.status是0 – soninob

+0

请问您要重定向的URL,真的有用吗? –

回答

1

我发现这个问题是由于跨域 - 我解决它通过编辑将启动没有安全浏览器的执行文件 - ( - 禁用网络安全)希望这是对别人的帮助!