[英]Hard-coded URL's
我有一個關於硬編碼網址的查詢。 使用jquery從JavaScript進行發布時,我將其設置為$.post('http://localhost:8000/timer/check/'
現在,這在我的開發服務器上可以正常工作。 當我必須將其部署在另一台服務器上時,我必須手動更改代碼中的所有url。 那么如何避免對URL進行硬編碼?
為了實現這一點,您必須在meta標記中使用以下標記
<head>
<base href="{{your base url_here}}">
</head>
之后,您必須編寫相對於該基本URL的路徑。
例如
<head>
<base href="http://localhost:8000/timer/check/">
</head>
如果完整的URL是http://localhost:8000/timer/check/test.php
。 現在,您可以在ajax調用中相對於基本URL 'test.php'
編寫代碼。
這樣嘗試
var host = window.location.hostname;
var url = host + "/" + timer/check/;
現在,您可以將網址傳遞給post方法
你也可以用這個
window.location.protocol //you'll get your protocol `http` or `https`
window.location.port //this will return the port
有一些解決此常見問題的方法-
1)使用$.post('./timer/check')
。 這將采用當前域並附加網址(推薦)
2)創建一個全局變量,並在任何需要的地方使用它。 在開發人員工作時分配本地URL,在生產工作時分配生產URL。
3)創建一個包裝器,並始終使用該包裝器發送請求。 創建一個具有當前狀態(Dev或Prod)作為其值的全局變量,並不斷對其進行更改。 並像這樣使用它-
post(url) {
var baseurl = '';
if(CURRENT_ENVIRONMENT=='DEV')
baseurl = 'http://localhost:8080';
else if(CURRENT_ENVIRONMENT=='PROD')
baseurl = 'http://yourwebsiteurl';'
$.post(baseurl+'/timer/check')
//and so on
}
您可以使用自己喜歡的任何一種。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.