Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

141
Visualizações
expressjs no devuelve ninguna respuesta a html

al enviar un formulario sin usar ajax , pude ver "mensaje enviado con éxito" en mi http://localhost/ss (funcionando bien como debería)

Pero al enviar un formulario usando ajax $.post() , la respuesta no se recibe en el método $.post(). no pude encontrar ningun motivo..

Tenga en cuenta: el mismo código funciona bien con php

índice.html

 <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> <script> $(document).ready(function() { $("#buttons").click(function() { $.post("http://localhost:3000/ss", { sendemail: $("#email").val(), sendname: $("#UserName").val(), sendpass: $("#Password").val() }, function(res) { alert(res); }); }); }); </script> <body> <div class="forms"> <form> <div class="formdiv"> <label>User Email</label> <input type="email" id="email" name="email" /> </div> <div class="formdiv"> <label>User Name</label> <input type="text" name="UserName" id="UserName" /> </div> <div class="formdiv"> <label>User Password</label> <input type="password" name="Password" id="Password" /> </div> </form> <div style="background:green;padding:15px;" id="buttons">send</div> </div> </body> </html>

analizar.js

 var express = require("express"); var bodyParser = require("body-parser"); var app = express(); app.listen(3000, function(req, res) { console.log("express is listening to port 3000"); }); app.use(bodyParser.urlencoded({ extended: true })) app.use(bodyParser.json()); app.get("/", function(req, res) { res.send("hai"); }); app.post("/ss", function(req, res) { var ss = req.body.sendemail; if (ss != undefined) { console.log(ss); res.send("message sent successfully"); } else { res.send("error occurred"); } });

la consola imprime la dirección de correo electrónico del usuario " El único problema es la respuesta a html "

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El código se ve bien por sí mismo, aunque hay un problema con (sospecho) la forma en que lo usa. No está permitiendo cross-origin sharing . En otras palabras, si intenta ejecutar este código en otro dominio, recibirá un error CORS , ya que el servidor se niega a responder al cliente.

Por lo tanto, sospecho que está cargando el archivo .html:

  • Como local, archivo html.
  • Lo están ejecutando desde un dominio diferente

ambos devolverían (y están) devolviendo el error mencionado anteriormente. Es por eso que no está recibiendo la respuesta, por lo que no está viendo el mensaje de alerta.

Para evitar el problema, puede:

  • Habilitar soporte CORS
  • Procese el archivo HTML a través del servidor (por lo que la solicitud provendrá del mismo dominio).

Ejemplo aquí:

 var express = require("express"); var bodyParser = require("body-parser"); var app = express(); var path = require("path"); ... app.get("/", function(req, res) { res.sendFile(path.join(__dirname + '/index.html')); }); app.post("/signup", function(req, res) { var email = req.body.email; if (!email) { return res.json({ message: "error occurred" }); } res.json({ success: true; }); });
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda