這是一個 SpringBoot 網(wǎng)站。html 頁面 url 為http://xxxxx/trex/index/索引頁面中的 javascript 代碼段如下$(function(){jQuery.ajax({ contentType:'application/json;charset=UTF-8', type: "POST", url: "getSignTypes", cache: false, dataType: "json", success:function(data){ if(data !== 'NA'){ console.log(data); $('#signType').combobox({ valueField:'id', textField:'title', editable:false, data:data, value:data[0].id }); } }, error:function(msg){ console.log(msg) }});})你可以看到我在這個 ajax 請求的 url 參數(shù)中使用了相對路徑。我想因?yàn)樗窍鄬?url,所以應(yīng)該將其轉(zhuǎn)換為http://xxxxx/trex/index/getSignTypes。我在本地測試它,是的,它符合預(yù)期http://localhost:8088/trex/index/getSignTypes。但是當(dāng)我將它部署到UAT時(shí),我發(fā)現(xiàn)url被轉(zhuǎn)換為http://hswcfc-trainexp-web.uat.homecreditcfc.cn/trex/getSignTypes。索引部分不見了。為什么 Ajax 中的相對路徑在不同的環(huán)境中工作方式不同?ajax 代碼完全相同。我可以找到任何線索來找出不同之處嗎?謝謝。我通過了此處的 UAT 屏幕截圖。
1 回答

白衣非少年
TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個贊
一個 HTTP URL 由幾個部分組成:協(xié)議、主機(jī)名、端口、用戶名、密碼、路徑、查詢字符串 ( ?....
) 和片段 ( #....
)。
正如所懷疑的那樣,您的 URL路徑以 dev結(jié)尾/
,而不是以 UAT 結(jié)尾。把它想象成“目錄”:/trex/index/
是目錄中的空文件名,而是/trex/index
目錄中/trex/index
的文件。Web 服務(wù)器通常以相同的方式對待這兩種情況,但客戶端不會:當(dāng)您從那里執(zhí)行相對路徑時(shí),您會遇到第一種情況,但會遇到第二種情況。index
/trex
/trex/index/getSignTypes
/trex/getSignTypes
這通常通過創(chuàng)建重定向規(guī)則來解決,這樣您就不會意外地以兩種不同的方式編寫相同的 URL(例如,通過重定向/trex/index
到/trex/index/
)。
添加回答
舉報(bào)
0/150
提交
取消