gpt4 book ai didi

javascript - 在 NodeJs 中从客户端调用服务器端函数

转载 作者:行者123 更新时间:2023-11-30 14:54:41 25 4
gpt4 key购买 nike

我开始学习web开发,想在客户端调用函数的时候改变服务器端的数据。

所以这是我的示例服务器

const fs = require('fs');
const path = require('path');
const express = require('express');
const exphbs = require('express-handlebars');

const app = express();

app.engine('handlebars', exphbs({defaultLayout: 'index'}));
app.set('view engine', 'handlebars');

app.use(express.static(path.join(__dirname, 'Public')));

app.get('/profile', function (req, res) { // Render the HTML
res.render('profile');
});

app.get('/incHp/:id', function (req, res) { // AJAX
console.log("Ajax => UserId " + req.params.id);
});

app.get('/decHp/:id', function (req, res) { // AJAX
console.log("Ajax => UserId " + req.params.id);
});

app.listen(8888, function () {
console.log('Server running on port 8888');
});

我的 Handlebars 模板包含

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="../Client/profile.js"></script>

<Button class="btn" onclick="increaseHitpoints()">Increase Hitpoints</Button>

<Button class="btn" onclick="decreaseHitpoints()">Decrease Hitpoints</Button>

按下按钮时,我的客户端 Javascript 调用这些函数

function increaseHitpoints(){ // Increase the HP of the User 2312
$.ajax({
type: 'POST',
url: 'http://localhost:8888/incHp/2312'
});
}

function decreaseHitpoints(){ // Decrease the HP of the User 2312
$.ajax({
type: 'POST',
url: 'http://localhost:8888/decHp/2312'
});
}

但是控制台说 Ajax post 是错误的,只显示 404 错误。我该如何解决这个问题?

最佳答案

在您的服务器端代码中,您使用的是 app.getget 方法,而在您的 Ajax 请求中,您使用的是 post 方法。这在方法类型上存在冲突。

在函数代码中更改方法类型

function increaseHitpoints(){ // Increase the HP of the User 2312
$.ajax({
type: 'GET', // change this
url: 'http://localhost:8888/incHp/2312'
});
}

function decreaseHitpoints(){ // Decrease the HP of the User 2312
$.ajax({
type: 'GET', // change this
url: 'http://localhost:8888/decHp/2312'
});
}

关于javascript - 在 NodeJs 中从客户端调用服务器端函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com