You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ajax调用省略项目名时路径异常,如何无需填写完整URL?

解决Ajax相对路径缺失项目名的问题

以下是几种无需手动填写完整URL的解决方案:

  • 设置HTML的<base>标签
    在页面<head>中添加base标签,指定项目的根路径,所有相对路径都会自动基于该路径拼接:
<base href="http://192.168.0.10/demo_projects/">

之后Ajax请求只需写接口名(注意不要加开头的/):

$.ajax({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    type: "POST",
    url: "check_login", // 自动拼接为 http://192.168.0.10/demo_projects/check_login
    data: {login_name: login_name},
    success : function(res){
        // 处理返回结果
    }
});
  • 全局配置jQuery Ajax默认前缀
    在项目公共JS文件里统一设置Ajax的基础路径,后续所有请求都不用重复写前缀:
// 全局配置基础路径
$.ajaxSetup({
    baseUrl: "http://192.168.0.10/demo_projects/"
});

// 发起请求时只需写接口路径
$.ajax({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    type: "POST",
    url: "check_login",
    data: {login_name: login_name},
    success : function(res){
        // 处理逻辑
    }
});

如果不想硬编码IP,可动态获取当前站点信息:

const basePath = window.location.origin + '/demo_projects/';
$.ajaxSetup({
    baseUrl: basePath
});
  • 定义全局基础路径变量
    在项目中定义一个全局的基础路径变量,每个Ajax请求时拼接接口名:
// 定义基础路径(可动态获取避免硬编码)
const baseUrl = window.location.origin + '/demo_projects/';

$.ajax({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    type: "POST",
    url: baseUrl + "check_login",
    data: {login_name: login_name},
    success : function(res){
        // 处理返回结果
    }
});

内容的提问来源于stack exchange,提问作者Kashish Agarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 00:45:10