【问题标题】:Relative path in Ajax works differently in different environmentAjax 中的相对路径在不同环境中的工作方式不同
【发布时间】:2019-05-16 03:27:26
【问题描述】:

这是一个 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 屏幕截图。

【问题讨论】:

  • 相对 URL 始终始终相对于当前 URL。您报告的差异不能来自代码,只有 URL 有任何影响(并且代码间接影响 URL 的程度)。当您的 AJAX 请求启动时,您一定没有在 http://hswcfc-trainexp-web.uat.homecreditcfc.cn/trex/index/ 上。
  • 嗨@Amadan,'AJAX 请求已启动'是什么意思? javascript 代码在索引网页中,所以我猜“索引”是启动 AJAX 的地方。我错过了什么吗?
  • 我的意思是 - 检查 URL。特别注意末尾是否有斜线。
  • @Amadan。谢谢。我在这里通过了 UAT 屏幕截图。这个ajax请求的引用地址是hswcfc-trainexp-web.uat.homecreditcfc.cn/trex/index。所以我认为 index 是启动 ajax 的地方。对吗?

标签: javascript java relative-path


【解决方案1】:

一个 HTTP URL 由几个部分组成:协议、主机名、端口、用户名、密码、路径、查询字符串 (?....) 和片段 (#....)。

正如怀疑的那样,您的 URL path 在 dev 中以 / 结尾,但在 UAT 中却没有。将其视为“目录”:/trex/index//trex/index 目录中的空文件名,而/trex/index/trex 目录中的文件index。 Web 服务器通常以相同的方式处理这两者,但客户端不会:当您从那里执行相对路径时,在第一种情况下会得到 /trex/index/getSignTypes,但在第二种情况下会得到 /trex/getSignTypes

这通常通过创建重定向规则来解决,这样您就不会意外地以两种不同的方式写入相同的 URL(例如,通过将 /trex/index 重定向到 /trex/index/)。

【讨论】:

  • 非常感谢阿马丹。然后就很清楚了。我的问题解决了。
猜你喜欢
  • 1970-01-01
  • 2011-05-28
  • 2012-02-22
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多