jQuery get方法无法正常工作,传递给请求

时间:2018-02-17 17:05:26

标签: javascript api express

我正在尝试使用jQuery get方法将firstname和lastname发送到api请求。只使用一个参数即可以正常工作,即仅使用名字,但是当我将lastname添加到请求时。 如果url =" http:// localhost:5000 / name?firstname =" + h1; 但是如果url =" http://localhost:5000/name?firstname=" + h1 +"& lastname =" + h2;在后面的情况下,所需的输出显示一秒然后消失,网址更改为" http://localhost:5000/?",该功能从" http://localhost:5000/&#调用34; 这是我的javascript代码:

<script type="text/javascript">
    $(document).ready(function(){
        $("#submitButton").click(function(e){
            var h1 = $("#handle1").val();
            var h2 = $("#handle2").val();
            var u = "http://localhost:5000/name?firstname="+h1+"&lastname="+h2;
            //works fine if u = var u = "http://localhost:5000/name?firstname="+h1; though lastname is displayed undefined in the output
            alert(u);
            $.get(u, function(data){
                $('.result').html(data);
            })
        });
    });
</script>

这是我的Express API代码:

var express = require('express');
var app = express();
var path = require("path");
const PORT = process.env.PORT || 5000

app.listen(PORT, function(){
   console.log('server running on port ' + PORT);
})
app.get('/name', function(req, res){
    res.send("Full Name: "+ req.query.firstname + " " + req.query.lastname);
});

1 个答案:

答案 0 :(得分:1)

您的Ajax $.get请求应该类似于下面的代码段。如果投放的 HTML 也通过http://localhost:5000/运行,那么您可以完全省略相对网址。

$.get('name', {'firstname': h1, 'lastname': h2}).done(function(data) {
    $('.result').html(data);
});

name中的$.get对应于路线/name