当我收到来自ajax请求的服务器数据时:
(1)在桌面视图中,<p id="productName"></p>
和<p id="productPrice" ></p>
的值已更改(预期行为)。
(2)在移动视图中,调用完成后,我被定向到具有json数据输出的页面(非预期)“ / product / get”。
HTML代码:
<p id="productName"></p>
<p id="productPrice" ></p>
进行了Ajax调用:
$(".get-product").on('click', function (event) {
event.preventDefault();
let url = "/product/product1";
$.ajax({
url: url,
method: "GET",
success: function (data) {
$("#productName").html(data.name);
$("#productPrice").html("₹ " + data.price);
}
});
});
服务器端代码(Nodejs):
router.get('/product/:uName', function (req, res, next) {
productServices.get(req, req.params.uName, function (error, result) {
if (!error) {
res.status(200).json(result);
} else {
res.status(500).json({error: error});
}
});
});
移动视图中两个p标签的预期价值变化,而不是直接指向新页面。
答案 0 :(得分:0)
您的变量之一似乎干扰了您项目的路由系统,让我们尝试在ajac函数中使用:method:“ POST”代替method:“ GET”,并在php文件中使用:router.post代替router 。得到。有关router.post的更多信息,请参见此链接:https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/routes
答案 1 :(得分:0)
我的问题通过仅包装如下所示的“发出Ajax请求的点击事件”来解决:
$(document).ready(function(){
$(".get-product").on('click', function (event) {
.....
});
});