Article From:https://segmentfault.com/q/1010000012039060
Question:

1、express用res.json({name:1})返回数据,为什么直接把{name:1}显示在页面上了,想要用js获取怎么做。
2、部分代码:
在.html页面:
<script>

function init() {  //取得数据对数据初始化
    console.log("请求");
    $.ajax({
        url: '/',
        type: 'GET',
        dataType:"json",
        success(data) {
            console.log('fetchDataSuccess');
            console.log(data);
        }
    });
}
init();

</script>

在app.js页面:
app.get(‘/’,function (req,res) {

res.json({name:1});

});
3、运行之后:页面上就只要{name:1}。

Answer 0:

express作为一个中间件,可以用来做一个路由中间件。

app.get('/',function (req,res) {
res.json({name:1});
});

这段代码,就是设置了一个访问相当于本地服务器的路由件。
当你打开localhost:端口号 默认访问就是这个路由中间件。当然也就显示你返回的json数组。
所以,推荐你,把get('/')换成其它的。

Answer 1:

楼上的情况应该是html所在的路径是”/”
而ajax请求的路径也是”/”
但你的后端代码:
app.get(‘/’,function (req,res) {

res.json({name:1});
});
只返回了json,并没有返回视图,所以当你访问 “/” 时应该是只能看到 json 内容的,其实你的ajax并没有发送,因为你那个 .html 都并没有加载。

正确的做法是后端判断一下请求类型是不是 ajax;
是的话,返回 json,不是的话加载视图模板。

Answer 2:

你直接在浏览器地址栏里输入了ip/这样子肯定是直接输出到页面了,如果是用ajax那肯定是拿到一个json对象了

Answer 3:

这的看你访问的url

Answer 4:

猜测你url的地址也是ip+端口+/,这个也相当于请求'/'接口,所以显示的返回的json数据,是不是url地址错误?url应该是你的ip:端口/*.html地址

Answer 5:

猜测:

题主可能访问的页面地址是【/】,然后这个页面里面有个ajax请求【/】,那么这两个走了后台同一个路由接口,http 请求(页面访问)的结果就是页面出现res.json的内容,ajax访问的结果就是console中输出res.json结果。

建议:

尝试让ajax访问别的接口(至少不要和页面入口地址一样),看看是不是题主想要的结果

Leave a Reply

Your email address will not be published. Required fields are marked *