javascript 如何为所有$. AJAX 请求建立一个URL前缀

9rygscc1  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(328)

我有一个问题与$. AJAX 当我的网站有一个路径基地的网址,我在javascript中指定的是失踪的路径基地和路由找不到。有没有一个好的策略来解决$. AJAX 的路径基础问题?
我的想法是使用ajaxSetup和beforeSend来改变带有前缀的url,这将允许我从全局位置设置url前缀,而不必修改代码库中带有前缀的每个url字符串,但是如果我在$.ajax调用中使用beforeSend,那么使用ajaxSetup建立的beforeSend将被忽略,所以我不知道如何使用该选项。

ymdaylpp

ymdaylpp1#

在应用程序的早期,在任何 AJAX 请求之前运行一次这段代码(用您选择的前缀替换 http://localhost:4000):

(() => {
  let org = $.ajax;
  let prefix = 'http://localhost:4000';
  $.ajax = function (...args) {
    args[0] = prefix + args[0];
    return org.apply(this, args);
  }
})();
nwnhqdif

nwnhqdif2#

这就是我最后得到的。我发现ajaxSend让我做了ajaxSetup做不到的事情。请原谅ASP.NET引用。

<script>
    $(document)
        .ajaxSend(function (event, jqxhr, settings) {

            var baseUrl = '@Url.Content("~/")';
            if (!settings.url.startsWith(baseUrl))
            {
                // need to account for instances where your website has a path base
                settings.url = baseUrl + settings.url;
            }

        })
</script>

相关问题