【发布时间】:2018-04-05 18:20:40
【问题描述】:
这是我的代码。
后端代码(快递)
router.get('/principal/leave/approval/:id',function(req,res){
console.log('requested');
var approval;
if(req.body.approve){
approval=true;
}else{
approval=false;
}
leaveDB.update({_id:req.params.id},{approved:approval},function(err){
if(err){
console.log(err);
}else{
res.send('success');
}
});
});
这里是前端
<input type='button' value="Approve" id="Approve" class="btn<%=details._id%>"/>
<input type='button' value="Disapprove" id="Disapprove" class="btn<%=details._id%>"/>
</form>
<script>
$(document).ready(function(){
$('.btn').on('click',function(){
var id=this.className.slice(4);
$.ajax({
type:'GET',
url:'/principal/leave/approval/'+id,
data:{approval:this.id},
success:function(data){
alert('success');
}
});
});
});
</script>
当我运行它时,我什至看不到控制台中打印的“请求”。我的代码中是否有任何错误,或者我应该使用其他东西来发出这样的请求? (我使用ejs作为视图引擎)
【问题讨论】:
-
您的 Express
app如何为.use()设置router?如果您检查浏览器的开发工具,它的控制台或网络监视器是否显示请求有任何问题?或者,jQuery 本身是否报告了error? – 旁注:GET requests shouldn't be expected to have areq.body. -
既然这是一个 GET 请求,那么当您从浏览器访问该 url 时会发生什么?
-
Uncaught TypeError: $.ajax is not a function at HTMLInputElement.
(5ac61a68d89acf03f0379779?approve=Approve:88) 在 HTMLInputElement.dispatch (jquery-3.2.1.slim.min.js: 3) 在 HTMLInputElement.q.handle (jquery-3.2.1.slim.min.js:3) -
另外,GET 似乎是错误的操作。
-
使用支持 $.ajax 的 jQuery 版本
标签: javascript node.js ajax express get