2013-07-31 81 views
0

是否有可能爲同一個URL呈現不同的頁面?相同的URL - 呈現不同的頁面(EXPRESS)

例如,如果我點擊#login1,我想要發送到/ login_page /。如果我點擊#login2,我仍然應該被髮送到/ login_page /。每次,我都想渲染不同的htmls,具體取決於我點擊的#login。

所以我希望它看起來像這樣。

客戶:

$("#login1").click(function(){ 
    window.open(/login_page/,'_parent');  
    }); 

    $("#login2").click(function(){ 
    window.open(/login_page/,'_parent');  
    }); 

服務器:

app.get('/login_page/', users.login_page1); //if I clicked #login1 
    app.get('/login_page/', users.login_page2); //if I clicked #login2 

非常感謝任何幫助。

回答

0

如果我正確地得到它,你只是想調用不同的控制器對相同的請求沒有參數? 你知道你可以通過參數化url來獲得你需要的服務器端小控制邏輯的結果。

0

我不相信這是可以做到這一點,沒有任何參數。一種解決方案可能看起來像這樣

客戶端:

$("#login1").click(function(){ 
window.open(/login_page/1,'_parent');  
}); 

$("#login2").click(function(){ 
window.open(/login_page/2,'_parent');  
}); 

服務器:

app.get('/login_page/:id', function(req, res){   //if I clicked #login1 
if(req.params.id == 1){ 
    res.render('index1.html'); 
} else { 
    res.render('index2.html'); 
} 
} 
1

基本上你需要傳達出這樣的信息的請求的一些領域。

  • 簡單的事情:URL,如網頁設計
  • 如果你是太爽了有網址是不同的,你可以使用查詢字符串
    • window.open('/login_page?from=login2', '_parent');
  • 如果您對查詢字符串太酷了,您可以設置一個cookie
  • 如果您對cookie太酷了,您可以通過ajax請求頁面xhr.setRequestHeader
  • 如果您對自定義ajax請求標頭的工具很酷,您可以在加載login_page之前將具有跟蹤像素src屬性的圖像添加到DOM,並在服務器端會話中檢測並相應地呈現不同的頁面

總之,至少有六種方法可以在技術上實現這一目標。恕我直言,只有URL和查詢字符串是合理的。

相關問題