node.js - AJAX 损坏,POST 路由 404(未找到)
问题描述
我已经为此工作了几天。我敢肯定它真的很愚蠢,但我已经到了理智的尽头。
公共文件已正确设置。
错误信息:
POST 127.0.0.1:8080/api/pvtToggle 404 (Not Found)
前端 HTML:
<li class="list-group-item list-group-item-dark">
<div class="row">
<div class="col-md-4"><strong>Heating:</strong> {{#if heating}} {{this.heating}} {{else}} N/A {{/if}}</div>
<div class="col-md-4"><strong>Cooling:</strong> {{#if cooling}} {{this.cooling}} {{else}} N/A {{/if}}</div>
<div class="col-md-4">
<input type="checkbox" id="pvt{{this.id}}" checked="{{this.private}}" onchange="togDefine({{this.id}}, {{this.private}});" data-toggle="toggle" data-on="Private" data-off="Public" data-onstyle="success" data-offstyle="danger" />
</div>
</div>
AJAX 调用:
// Private-Public toggle
let togDefine = (id, pvt) => {
$.ajax({
type: "POST",
url: "/api/pvtToggle",
data: {
id: id,
newState: (pvt === 'true') ? false : true
},
success: function(text) {
if (text === 'ok') {
pvtSuccess(id, pvt);
} else {
console.log('updatePvt failed');
}
}
});
};
let pvtSuccess = (id, pvt) => {
$('#pvt' + id).attr('checked', (pvt === 'true') ? 'false' : 'true');
};
后端:
//TOGGLE Private vs Public PROPERTY
app.put('/api/pvtToggle/', isAuthenticated, function(request, response) {
db.Prop.update({
private: request.params.newState
}, {
where: {
id: request.params.id
}
}).then(data => {
response.send('ok');
}).catch(error => {
console.log(error);
});
});
请帮我弄清楚为什么请求不能正常工作。:D
解决方案
您的端点是app.put
,暗示它响应 PUT 请求,
但是您的 ajax/fetches 正在发出 POST 请求。
推荐阅读
- sql - 将列分成多行
- spring-boot - IllegalStateException:主题 [XYZ] 存在/不存在且 missingTopicsFatal 为真
- ruby-on-rails - 如何在 rails sidekiq 工作人员之间共享方法
- amazon-web-services - 从 GCP 登录到 docker AWS 注册表
- python - 如何从另一个列表中选择不包含有序序列的列表?
- php - 单击编辑后如何在表单中显示某些行的数据?(PHP)
- ansible - 如何使用 Ansible 官方模块更有效地将磁盘添加到 VMware 的 VM 主机?
- ios - 如何在 SwiftUI 中的视图上推送点击手势视图?
- swift - 如何添加警报按钮直到我的数据计数?如何保存从操作索引中选择的数据?
- excel - VBA/Excel - 将列值与预定义集匹配