2017-02-08 36 views
0

當我嘗試運行一個http請求時,我的NodeJS應用程序出於某種奇怪的原因決定將我的域添加到我在http請求中設置的URL中。我如何確保這不會發生?請求中的URL在運行前已更改

我試圖尋找類似的問題,但沒有發現。可能是因爲我不確定要實際搜索的內容。

這裏是我想已經運行了什麼:

$.ajax({ 
    url: 'xxx.xxx.xxx.xxx', 
    type: 'PUT', 
    headers: { 
     'value': 'value', 
     'value2': 'value2' 
    }, 
    success: function(result) { 
     // extra code... 
    } 
});  

而且這是在請求中會發生什麼,從控制檯看到:

$.ajax({ 
    url: 'http://localhost:8080/xxx.xxx.xxx.xxx', // (added localhost) 
    type: 'PUT', 
    headers: { 
     'value': 'value', 
     'value2': 'value2' 
    }, 
    success: function(result) { 
     // extra code... 
    } 
}); 

值得注意的(可能)是,如果我將http://添加到我的請求URL中,但它在運行時不會更改,但該URL不被接受。這個請求將在事物的客戶端運行,即在瀏覽器中運行。

+0

是'xxx.xxx.xxx.xxx'到另一個網站的網址? –

+0

也許你可以嘗試使用'// xxx.xxx.xxx.xxx'? – Moose

+0

它是,或者它是一個服務器的URL。我嘗試了//並且工作正常,但意識到我還必須添加一個端口,這對於瀏覽器中的普通AJAX請求來說似乎是不可能的。所以現在我需要找到一個新的解決方案... – Erik

回答

0

您的URL並不是一個有效的URL,因爲它缺少一個方案以及可能的其他位,所以ajax會對您的意思進行最佳猜測。

默認爲阿賈克斯()是查詢當前頁面,這是http://localhost:8080,並花了你提供什麼作爲該網頁上的路徑。

試試這個:

網址: 'http://xxx.xxx.xxx.xxx',

+0

感謝您的回覆,我實際上並不知道您必須直接使用IP地址時添加協議。可悲的是,http://不適合我,我意識到我還必須添加一個端口,這在瀏覽器中的正常AJAX請求中似乎是不可能的。所以,現在我需要找到一個新的解決方案... – Erik

0

如果xxx.xxx.xxx.xxx是一個鏈接到另一個網站,你必須指定協議或xxx.xxx.xxx.xxx將interpretted爲相對路徑。

一般來說,這也適用於src屬性(對於img,srciptiframe ...)。除非指定了協議,否則頁面中的任何鏈接都將被視爲相對路徑。

例如:(只是爲了解釋)在Windows上,如果你有一個像some\thing的路徑,這將是相對的,無論你正在試圖訪問它(你在哪裏試圖訪問這將是絕對路徑自動添加到路徑some\thing)。但是如果你的路徑是C:\some\thing,那麼無論它被訪問到什麼地方,它都是一樣的。協議以類似的方式工作。

+0

你解釋完美,謝謝!我現在正在尋找一個不同的解決方案,所以我不確定我是否應該選擇一個答案作爲解決方案,或者只是讓它有一點點。 – Erik