亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Ajax 中的相對路徑在不同環境中的工作方式不同

Ajax 中的相對路徑在不同環境中的工作方式不同

動漫人物 2022-11-30 13:30:11
這是一個 SpringBoot 網站。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 參數中使用了相對路徑。我想因為它是相對 url,所以應該將其轉換為http://xxxxx/trex/index/getSignTypes。我在本地測試它,是的,它符合預期http://localhost:8088/trex/index/getSignTypes。但是當我將它部署到UAT時,我發現url被轉換為http://hswcfc-trainexp-web.uat.homecreditcfc.cn/trex/getSignTypes。索引部分不見了。為什么 Ajax 中的相對路徑在不同的環境中工作方式不同?ajax 代碼完全相同。我可以找到任何線索來找出不同之處嗎?謝謝。我通過了此處的 UAT 屏幕截圖。
查看完整描述

1 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

一個 HTTP URL 由幾個部分組成:協議、主機名、端口、用戶名、密碼、路徑、查詢字符串 ( ?....) 和片段 ( #....)。

正如所懷疑的那樣,您的 URL路徑以 dev結尾/,而不是以 UAT 結尾。把它想象成“目錄”:/trex/index/是目錄中的空文件名,而是/trex/index目錄中/trex/index的文件。Web 服務器通常以相同的方式對待這兩種情況,但客戶端不會:當您從那里執行相對路徑時,您會遇到第一種情況,但會遇到第二種情況。index/trex/trex/index/getSignTypes/trex/getSignTypes

這通常通過創建重定向規則來解決,這樣您就不會意外地以兩種不同的方式編寫相同的 URL(例如,通過重定向/trex/index/trex/index/)。


查看完整回答
反對 回復 2022-11-30
  • 1 回答
  • 0 關注
  • 96 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號