如何处理从开发到生产环境的Ajax URL更改?

时间:2018-07-30 14:58:29

标签: javascript jquery ajax

我的项目中使用的AJAX URL在不同的环境(即开发/测试和生产)中会发生变化,如下所示:

开发/测试:

  

http://localhost:60000/Users/GetAll

制作:

  

http://production.com/myProject/Users/GetAll

解决这个问题的最佳方法是什么?

我的项目是MVC项目,但是我不想使用HTML Helpers来生成URL,因为我不想将C#与我的JS脚本混合使用

2 个答案:

答案 0 :(得分:0)

您可以使用此Visual Studio扩展 Slow Cheetah https://github.com/Microsoft/slow-cheetah

实际上,此插件会在应用程序发布时更改web.config文件。在您的web.config中,您可以存储2个不同的API端点。

在您的Dev Web.config上

<appSettings>
  <add key="Endpoint" value="http://localhost:60000" />
</appSettings>

生产中

<appSettings>
  <add key="Endpoint" value="http://production.com/myProject/" />
</appSettings>

然后您可以像这样获得端点

System.Configuration.ConfigurationManager.AppSettings.Get("Endpoint").ToString();

答案 1 :(得分:0)

因此,此值应来自服务器端,您可以在服务器上某个位置的配置中定义它,并根据它触发env(基于正在执行的env线程读取条件检查),然后将该值/变量以某种方式发送给客户端应用程序,可以轻松地解析app.js / whatever.js ...(项目的开始文件)中的信息,并从那里使该应用程序成为全局变量,以供您在API调用中使用。我没有从事C#工作,但方法必须相同。

Node.js在 process 中将此值作为process.env给出。这么简单!

您真的不应该在客户端的任何位置对此进行硬编码。