Pass Function Ajax Encryption

Asked

Viewed 256 times

1

I’m trying to get an Alert back from the server, but I’m not getting it. the idea would be as follows index.jsp

<html>
<head>
<title>Teste</title>
    <link rel="stylesheet" type="text/css" href="../estilos/estilo.css" />
    <script type="text/javascript" src="../js/ajax.js"></script>
</head>
<body>    
  nome:<input type="text" maxlength="30" Id="nome" name="nome"></input>
  data:<input type="text" maxlength="10" Id="data" name="data"></input>
  <input type=button  tabindex="8" class="botao" onclick="manda('inclui',1);" value="Adicionar">
  <div id=resultado name=resultado>
  </div>
</body>
</html> 

ajax.js

function openAjaxd2() {
  var ajax;
  try{
      ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
  }catch(ee){
      try{
          ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
      }catch(e){
          try{
              ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
          }catch(E){
              ajax = false;
          }
      }
  }
  return ajax;
}


function manda(sinal,indice) {

  var resultado = document.getElementById('resultado');
  var ajax = openAjaxd2(); // Inicia o Ajax.

  var url = "teste2.jsp";
  var parametros = "sinal=" + sinal;
  ajax.open("POST", url, true);
  ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  if (sinal == "inclui")
  {
    parametros += "&nome=" + encodeURIComponent(document.getElementById('nome').value);
    parametros += "&data=" + encodeURIComponent(document.getElementById('data').value);          
  } else if (sinal == "exclui")
  {
    parametros += "&indice=" + indice;
  }
  ajax.onreadystatechange = function () {
      if (ajax.readyState == 1){                
          resultado.innerHTML = "<center><font class='titulo'>Carregando...</font></center>";
      }
      if (ajax.readyState == 4) {  // Quando estiver tudo pronto.
          if (ajax.status == 200) {
              var a = ajax.responseText;
              if (a.indexOf('Erro:') > 0) {
                  alert(a.substring(a.indexOf('Erro:') + 5, a.indexOf('Fim')));
                  a = a.substring(0, a.indexOf('Erro:')) + a.substring(a.indexOf('Fim') + 3, a.length);
              }
              resultado.innerHTML = a;
          } else{
              resultado.innerHTML = "Erro: " + ajax.statusText + " " + ajax.responseText;
          }    
      }
  }
  ajax.send(parametros); // submete

}

teste2.jsp

<%@page import="Base.Utils"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Date"%> 
<%

 String sinal = request.getParameter("sinal");
 String linha;
 String str[];
 Date data;
 String nome;
 SimpleDateFormat sdf;
 {
 //***... trecho de código irrelevante... ***//
 } 
 try{
    data =sdf.parse(request.getParameter("data")); 
 }catch (Exception e){
   out.println("<div><script type=\"text/javascript\">alert('Informe a data');</script></div>");
 } 
 {
 //***... mais um trecho de código irrelevante que inclui os nomes em uma List e monta uma <table> com os valores... ***//
 }


%>

i needed this script to be executed, when I direct-load the test2.jsp page it from Alert, but when I call by ajax no(it appears in html sources, next to the table that is generated in test2.jsp

1 answer

0

To solve the problem I had to change the following

teste2.jsp

<%@page import="Base.Utils"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Date"%> 
<%

 String sinal = request.getParameter("sinal");
 String linha;
 String str[];
 Date data;
 String nome;
 SimpleDateFormat sdf;
 {
     //***... trecho de código irrelevante... ***//
 } 
 try{
        data =sdf.parse(request.getParameter("data")); 
 }catch (Exception e){
   out.println("<input type=hidden id=\"erros\" name=\"erros\" value=\"data invalida\" />");
 } 
 {
 //***... mais um trecho de código irrelevante que inclui os nomes em uma List e monta uma <table> com os valores... ***//
 }


%>

ajax.js

function openAjaxd2() {
  var ajax;
  try{
      ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
  }catch(ee){
      try{
          ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
      }catch(e){
          try{
              ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
          }catch(E){
              ajax = false;
          }
      }
  }
  return ajax;
}


function manda(sinal,indice) {

  var resultado = document.getElementById('resultado');
  var ajax = openAjaxd2(); // Inicia o Ajax.

  var url = "teste2.jsp";
  var parametros = "sinal=" + sinal;
  ajax.open("POST", url, true);
  ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  if (sinal == "inclui")
  {
    parametros += "&nome=" + encodeURIComponent(document.getElementById('nome').value);
    parametros += "&data=" + encodeURIComponent(document.getElementById('data').value);          
  } else if (sinal == "exclui")
  {
    parametros += "&indice=" + indice;
  }
  ajax.onreadystatechange = function () {
      if (ajax.readyState == 1){                
          resultado.innerHTML = "<center><font class='titulo'>Carregando...</font></center>";
      }
      if (ajax.readyState == 4) {  // Quando estiver tudo pronto.
          if (ajax.status == 200) {
              var a = ajax.responseText;                  
              resultado.innerHTML = a;
              var erros = document.getElementById('erros');
                if (erros===null) {
                    alert(erros.value); 
                }
          } else{
              resultado.innerHTML = "Erro: " + ajax.statusText + " " + ajax.responseText;
          }    
      }
  }
  ajax.send(parametros); // submete

}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.