Javascript 发布后ASP.NET MVC 5 Ajax控制器调用不起作用
我一直在开发一个ASP.NET MVC 5 web应用程序,其中包含一个包含Raphael javascript图像的视图,该图像使用AJAX调用controller方法来获取初始渲染的一些数据。当我在自己的机器上本地呈现页面时,一切都按预期执行,页面加载良好。但是,当我将应用程序“发布”到测试服务器时,每次尝试加载页面时,AJAX调用都会命中“Error”函数 经过一些研究,我通过将此标记添加到布局页面,解决了一些javascript错误:Javascript 发布后ASP.NET MVC 5 Ajax控制器调用不起作用,javascript,jquery,asp.net,ajax,asp.net-mvc,Javascript,Jquery,Asp.net,Ajax,Asp.net Mvc,我一直在开发一个ASP.NET MVC 5 web应用程序,其中包含一个包含Raphael javascript图像的视图,该图像使用AJAX调用controller方法来获取初始渲染的一些数据。当我在自己的机器上本地呈现页面时,一切都按预期执行,页面加载良好。但是,当我将应用程序“发布”到测试服务器时,每次尝试加载页面时,AJAX调用都会命中“Error”函数 经过一些研究,我通过将此标记添加到布局页面,解决了一些javascript错误: <meta http-equiv="X-UA-
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
}
如果需要更多信息,请告诉我
更新
这个问题实际上与网站的命名方式有关——它需要格式化为。最后,我不得不拆分路径名以说明/location位,并在脚本的开头构建URL。可能不是一个理想的情况,但它对我的情况很好 您的
"url: "/Home/GetESN",
在web服务器上的url比在本地服务器上的url不正确
尝试添加
<script>
rootUrl = '@Url.Content("~")'
</script>
有可能你的
"url: "/Home/GetESN",
在web服务器上的url比在本地服务器上的url不正确
尝试添加
<script>
rootUrl = '@Url.Content("~")'
</script>
有两种方法可以实现这一点 选择1 在ajax调用中更改url,如下所示:
url: @Url.Action("GetESN", "Home")
选择2
如果要避免使用razor标记帮助程序,这是最好的选择
在项目上单击鼠标右键,然后选择“属性”
在属性中,选择名为Web的链接
在Web链接的“查找项目Url”字段中
在项目Url中,为项目设置名称,如下例所示
Example:- http://localhost:1851/TestApp/
设置项目名称后,请选择“创建虚拟目录”
在ajax调用中,按如下所示设置url
Example:- url: "TestApp/Home/GetESN"
最后,确保以相同的名称发布项目。示例:-TestApp
有两种方法可以实现这一点 选择1 在ajax调用中更改url,如下所示:
url: @Url.Action("GetESN", "Home")
选择2
如果要避免使用razor标记帮助程序,这是最好的选择
在项目上单击鼠标右键,然后选择“属性”
在属性中,选择名为Web的链接
在Web链接的“查找项目Url”字段中
在项目Url中,为项目设置名称,如下例所示
Example:- http://localhost:1851/TestApp/
设置项目名称后,请选择“创建虚拟目录”
在ajax调用中,按如下所示设置url
Example:- url: "TestApp/Home/GetESN"
最后,确保以相同的名称发布项目。示例:-TestApp
查看network选项卡,可以看到jQuery实际上加载在~/Scripts/jQuery-1.10.2.min.js。另外-可能有些文件不是发布配置文件的一部分。您是否检查了操作是否已执行,例如使用fiddler。此外,您可以使用IE或chrome的开发工具F12查看javascript错误……您是使用捆绑还是手动将脚本标记添加到布局中?查看网络选项卡,查看jQuery实际上加载在~/Scripts/jQuery-1.10.2.min.js。另外-可能有些文件不是发布配置文件的一部分。您是否检查了操作是否已执行,例如使用fiddler。此外,您可以使用IE或chrome的开发工具F12查看javascript错误……您是使用捆绑还是手动将脚本标记添加到布局中?