无法从Nodejs获得Ajax响应

时间:2018-07-29 19:25:54

标签: node.js

我正在尝试为Nodejs创建一个简单的端点,但是它不起作用。这是我的文件夹结构

index.js (位于root / src中)

'use strict';
var express = require('express'),
bodyParser = require('body-parser'),
path = require('path');
//init the app by serving index file
var app = express();
var port= process.env.PORT || 5000;

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/', express.static('public'));

app.get('/endpoint',function(req,res) {
    console.log("clicked");
    res.send("hey");
})
app.listen(port);

index.html (位于根目录/公共目录中):

我无法在此处输入html元素...但是div中仅包含一个id = test的按钮

app.js (位于root / public / js中)

$('#test').on('click',function(e) {

    $.ajax({
        url: "/endpoint",
        type: "GET",
        success: function (result) {
            console.log(result);
        },
        error: function(result) {
            console.log(result);
        }
    })
})

控制台输出的结果是整个index.html页面的HTML内容,而不是单词“嘿”(我的Git控制台也不输出单词“ clicked”,这也意味着我的app.get / enpoint无所作为)。

更新:我找到了原因 在我的index.js中,我有这个

app.use(function(req, res) {
    res.sendFile(path.join(__dirname, '../public', 'index.html'));
});

这样做的目的是为了防止用户进入其他模板后重新加载页面时出现“无法获取”错误。当我删除它时,一切都按预期工作(现在,除非用户重新加载页面,否则会收到错误消息)

0 个答案:

没有答案