发布到节点/表达端点的Ajax问题

时间:2017-09-12 01:17:23

标签: javascript jquery node.js ajax

自从我使用JQuery / Ajax而不是axios连接到端点以来,我有点做错了吗?



var express = require('express');
var app = express()
var bodyParser = require('body-parser');
var path = require('path');

var port = process.env.PORT || 3000;

app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))

app.use(function (req, res, next) {
  

      res.setHeader('Access-Control-Allow-Origin', '*');
  

      res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
  

      res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
  

      res.setHeader('Access-Control-Allow-Credentials', true);
  
      // Pass to next layer of middleware
      next();
  });

app.get('/', function(req, res) {
  console.log(req.body);
  res.sendFile(path.join(__dirname, '../public/src', 'index.html'))

})

app.listen(port, function(error) {
  if(error){
    console.log(error);
  }
  console.log('Express is listening on port: ', port);
})




我的客户端代码是:



<html lang="en">

<head>
    <title></title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
    <script>
        function buttonClick() {
            $.ajax({
                url: 'http://localhost:3000',
                type: 'POST',
                data: {
                    'See me?': 'YEAH?'
                },
                dataType: 'json',
                success: function(data) {
                    alert('This is the data: ', data)
                },
                error: function(error) {
                    alert('This is an error: ', error)
                }
            })
        }
    </script>
</head>

<body>
    <h3>Hello world</h3>


    <button onclick="buttonClick()"> Click Me! </button>


</body>

</html>
&#13;
&#13;
&#13;

每当我点击“click me”按钮时,都会收到错误消息:

&#13;
&#13;
POST http://localhost:3000/ 404 (Not Found)
(anonymous) @ VM174:1
send @ jquery-3.2.1.min.js:4
ajax @ jquery-3.2.1.min.js:4
buttonClick @ (index):11
onclick @ (index):33
VM174:1 XHR failed loading: POST "http://localhost:3000/".
&#13;
&#13;
&#13;

有谁知道为什么会这样?顺便说一下,当我刷新页面时,我总是在服务器上获得控制台日志。控制台日志应该发生的唯一时间是调用AJAX帖子的时间。似乎每次刷新时都会调用它。

1 个答案:

答案 0 :(得分:3)

您在服务器端没有邮件处理程序,只有一个获取处理程序。

将其更改为发布或向服务器添加新的后期终结点。

app.post('/', function(req, res) {
  console.log(req.body);
  ......
})