为什么ajax在移动设备上无法像在台式机上那样工作?

时间:2019-04-19 10:41:09

标签: jquery ajax mobile desktop

当我收到来自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("&#8377; " + 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标签的预期价值变化,而不是直接指向新页面。

2 个答案:

答案 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) {
      .....
     });
});