2015-10-15 75 views
0

我有這種類型的節點快遞航線 - 絕對URL VS相對URL

的Express 4種的途徑來處理表單提交的簡單形式,如下所示

app.post('/articles', routes.article.keyword); 

的實際路線文件有以下幾種:

exports.keyword = function(req,res,next){ 
    res.send(req.body.keyword); 
}; 

基於上述情況,當我在瀏覽器中發佈表單時,我看到一個頁面「的地址不明白」。

但是,如果我使用相對URL的形式操作,即

它可以完美運行。爲什麼這樣?

因爲在現實中,我有時可能必須將數據發佈到不同的域或URL。

+0

您需要指定一個完整的url http://..../ action或相關的url。如果您發佈到同一主機,則無需指定完整的網址 –

+0

是的,您是對的。謝謝! – Jay

回答

0

我會發布我的評論作爲答案,因爲它有幫助。

爲了使行動工作,你需要或者指定完整的URL,包括架構:

<form name="keywords" action="http://www.example.com/articles" method="post"> 

或者,你可以使用相對URL:

<form name="keywords" action="/articles" method="post"> 
0

相對路徑是一個不以/(正斜槓)開始的...通常,這將嘗試從當前url的基本目錄加載(您可以在html中設置,儘管瀏覽器默認爲url的'dirname' (例如,頁面上的'img/something.gif') '/some/path/index.html'將從/some/path/img/something.gif'中獲取)。

絕對路徑是以/開始的路徑。它會被加載使用相同的架構,主機和可選的端口,用戶等(完整的URL語法:scheme:[// [user:password @] host [:port]] [/] path [?query] [#片段] ...在這裏閱讀更多:https://en.wikipedia.org/wiki/Uniform_Resource_Locator)。 (http/https/ftp等)...然而(這很方便):如果你打算使用相同的模式(它保持不變您的網站的安全分數高),您可以跳過它,以及冒號。

例如:當觀看距離「https://blah.net」網站,並嘗試加載從谷歌的資源(分析可能),你可以參考它爲:

「//google.com/path/to/whatever '

如果頁面通過https加載,則會使用https,如果不是,則使用http ...使您無需確定呈現頁面時使用的方案。

+0

請注意''''只能在服務器(甚至是本地主機)上運行,但如果你只是用瀏覽器打開一個本地'.html'文件 – 2016-10-21 20:33:12