鍍金池/ 問答/HTML/ express用res.json()返回?cái)?shù)據(jù)為什么直接顯示在頁面上了?需要js代

express用res.json()返回?cái)?shù)據(jù)為什么直接顯示在頁面上了?需要js代碼來獲取的話是用怎么用呢?ajax嗎?

1、express用res.json({name:1})返回?cái)?shù)據(jù),為什么直接把{name:1}顯示在頁面上了,想要用js獲取怎么做。
2、部分代碼:
在.html頁面:
<script>

function init() {  //取得數(shù)據(jù)對(duì)數(shù)據(jù)初始化
    console.log("請(qǐng)求");
    $.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、運(yùn)行之后:頁面上就只要{name:1}。

回答
編輯回答
青瓷

express作為一個(gè)中間件,可以用來做一個(gè)路由中間件。

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

這段代碼,就是設(shè)置了一個(gè)訪問相當(dāng)于本地服務(wù)器的路由件。
當(dāng)你打開localhost:端口號(hào) 默認(rèn)訪問就是這個(gè)路由中間件。當(dāng)然也就顯示你返回的json數(shù)組。
所以,推薦你,把get('/')換成其它的。

2018年1月14日 01:11
編輯回答
陪妳哭

你直接在瀏覽器地址欄里輸入了ip/這樣子肯定是直接輸出到頁面了,如果是用ajax那肯定是拿到一個(gè)json對(duì)象了

2018年5月22日 14:51
編輯回答
護(hù)她命

樓上的情況應(yīng)該是html所在的路徑是"/"
而ajax請(qǐng)求的路徑也是"/"
但你的后端代碼:
app.get('/',function (req,res) {

res.json({name:1});
});
只返回了json,并沒有返回視圖,所以當(dāng)你訪問 "/" 時(shí)應(yīng)該是只能看到 json 內(nèi)容的,其實(shí)你的ajax并沒有發(fā)送,因?yàn)槟隳莻€(gè) .html 都并沒有加載。

正確的做法是后端判斷一下請(qǐng)求類型是不是 ajax;
是的話,返回 json,不是的話加載視圖模板。

2018年8月19日 09:57
編輯回答
她愚我

猜測你url的地址也是ip+端口+/,這個(gè)也相當(dāng)于請(qǐng)求'/'接口,所以顯示的返回的json數(shù)據(jù),是不是url地址錯(cuò)誤?url應(yīng)該是你的ip:端口/*.html地址

2018年1月1日 05:36
編輯回答
何蘇葉

猜測:

題主可能訪問的頁面地址是【/】,然后這個(gè)頁面里面有個(gè)ajax請(qǐng)求【/】,那么這兩個(gè)走了后臺(tái)同一個(gè)路由接口,http 請(qǐng)求(頁面訪問)的結(jié)果就是頁面出現(xiàn)res.json的內(nèi)容,ajax訪問的結(jié)果就是console中輸出res.json結(jié)果。

建議:

嘗試讓ajax訪問別的接口(至少不要和頁面入口地址一樣),看看是不是題主想要的結(jié)果

2017年4月3日 13:35
編輯回答
祈歡

這的看你訪問的url

2018年5月1日 08:48