将ajax呼叫路由到拨打电话时提到的路径以外的路径

时间:2018-04-10 07:09:05

标签: javascript c# ajax asp.net-mvc asp.net-ajax

我的项目是用C#MVC构建的。假设它托管在 abc.com 上。 在 Controller:Home 方法:ClientInfo 上为ex的资源进行的Ajax调用将是:

  

url:' / Home / ClientInfo'

出于测试目的,我已假设 xyz.com/web 部署了相同的项目 在这种情况下,我的主页是xyz.com/web。 现在ajax调用资源Controller:Home和Method:ClientInfo使用相同的ajax url' / Home / ClientInfo'正在返回404 Not Found。 因为网址应该是

  

url:' / web / Home / ClientInfo'

处理此问题的一种方法是在整个项目中编辑所有ajax网址,这看起来并不正确。 我有共同的布局我可以用javascript编写代码来路由所有网址目录' / web'或者还有其他方式吗?

*注意:我无法控制xyz.com的web.config来处理调用并在那里编写规则。

请建议

1 个答案:

答案 0 :(得分:0)

您可以创建一个导出API路径的JavaScript文件,并在需要路由时导入它,因此您需要在需要时更改一个点。

示例ES6

使用API​​路由调用routes.js的文件:

export const API = '/web/';
export const CLIENT_INFO_API = `${API}home/clientinfo`;

然后,当您需要在其他文件中使用路由时:

//Import routes file
import * as ROUTES from 'routes.js';

//Use the routes
ROUTES.API
ROUTES.CLIENT_INFO_API

示例ES5

使用API​​路由调用routes.js的文件:

var routes = {};
routes.API = '/web/';
routes.CLIENT_INFO_API = routes.API+'home/clientinfo';

module.exports = routes;

然后,当您需要在其他文件中使用路由时:

//Import routes file
const ROUTES = require('routes.js');

//Use the routes
ROUTES.API
ROUTES.CLIENT_INFO_API