expressjs没有返回对html的任何响应
在不使用ajax提交表单时,我可以在my中看到“message sent successfully”(正常工作) 但是在使用ajax$.post()提交表单时,没有收到对$.post()方法的响应。我找不到任何理由 请注意:相同的代码适用于php index.htmlexpressjs没有返回对html的任何响应,express,Express,在不使用ajax提交表单时,我可以在my中看到“message sent successfully”(正常工作) 但是在使用ajax$.post()提交表单时,没有收到对$.post()方法的响应。我找不到任何理由 请注意:相同的代码适用于php index.html <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2
<!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>
console打印用户的电子邮件地址“唯一的问题是对html的响应”代码本身看起来很正常,尽管存在一个问题,即(我怀疑)您使用它的方式。您不允许
跨源共享
。换句话说,如果您试图在另一个域上运行此代码,您将收到一个CORS错误,因为服务器拒绝响应客户端
因此,我怀疑您正在加载.html文件:
- 作为本地的html文件
- 正在从不同的域运行它
- 启用CORS支持
- 通过服务器呈现HTML文件(因此请求将来自同一域)
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;
});
});
如果我了解客户端上的正确警报(res)返回未定义?或者从不执行?即使你用alert(“hai”)替换alert(res),它也不起作用..我的意思是“从不执行”@slowdeath你能试着用res.end(“消息”)替换res.send吗?我刚才试过了,它在@slowdeath007不起作用,这很奇怪。你是否安装了morgan,这样你就可以看到文章是否以代码200成功结束?你也可以尝试使用函数$.ajax,而不是速记函数$.post
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;
});
});