【问题标题】:jquery post and get request different on local intranet and live serverjquery 在本地 Intranet 和实时服务器上发布和获取不同的请求
【发布时间】:2010-04-23 06:06:04
【问题描述】:

我一直在开发一个 asp.net mvc 应用程序,我需要在其中进行大量 jquery 发布并获取调用控制器方法的请求并返回 json 结果。一切正常。

问题是我必须在本地 Intranet(通过制作虚拟目录进行部署)和实时服务器上编写不同的 jquery 帖子并获取请求 url。

当前jquery请求url如下:

$.post("/ProjectsChat/GetMessages", { roomId: 24 },.......

现在这种 jquery 请求的 url 格式适用于实时服务器,但不适用于本地 Intranet。由于在本地 Intranet 上,我创建了一个虚拟目录。 只有当我像这样“$.post("MyProjectVirutalDirName/ProjectsChat...................”这样附加虚拟目录的名称时它才有效

我相信你们中的大多数人一定遇到过同样的问题。

现在我已经做了一个完整的项目,有大量的 jquery 请求,我想通过在本地 Intranet 上部署来测试应用程序并修复错误。更改本地 Intranet 的所有 jquery 请求对我来说似乎不是可行的解决方案,我真的遇到了一个大问题,我不能像那样在实时服务器上部署同一个项目并在那里测试它,客户端会杀了我。

我需要一些专家建议。

请帮忙

谢谢

【问题讨论】:

    标签: jquery asp.net-mvc request


    【解决方案1】:

    我建议您避免在您的 javascript 中硬编码网址。您遇到的问题是其中一个原因,另一个是您决定更改路线。这是你可以做的。在视图中定义一个全局 javascript 变量来保存地址,它将使用 html 帮助器进行计算:

    var messagesAddress = '<%= Url.RouteUrl(new { controller = "ProjectsChat", action = "GetMessages" }) %>';
    

    然后在你的脚本中使用这个变量:

    $.post(messagesAddress, { roomId: 24 },..........
    

    【讨论】:

      【解决方案2】:

      为了避免这个问题,我已经设置并在本地运行了许多类似的 iis5.1

      我建议为不那么小的项目做同样的事情。您可以使您的开发更好更快,因为您不需要每次都在调试模式下运行 Visual Studio 来查看发生了什么变化,您只需在浏览器上查看您的页面,并在 Visual Studio 上进行编程。

      如果你需要调试你的代码的一部分,你可以附加到进程,或者只是删除这行代码,你的程序开始调试 Debug.Assert(false);

      希望对您有所帮助。

      【讨论】:

        【解决方案3】:

        在母版页标题中使用基本标记并根据需要进行更改...

        <base href="http://site/MyProjectVirutalDirName"></base>
        

        这是一个快速修复,意味着您不必检查所有代码

        【讨论】:

          猜你喜欢
          • 2012-12-07
          • 1970-01-01
          • 2019-07-26
          • 2015-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多