Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ajax post在本地工作,但在部署时不工作_Ajax_Asp.net Mvc - Fatal编程技术网

ajax post在本地工作,但在部署时不工作

ajax post在本地工作,但在部署时不工作,ajax,asp.net-mvc,Ajax,Asp.net Mvc,有谁能看出我在做什么错事,因为它让我有点疯狂(不确定是周五大脑还是婴儿大脑)无论如何 我有一篇Ajax文章,它在本地运行良好,但在部署到另一台服务器时不起作用 我已经发出了很多警报,以确保我得到了预期的参数,因此不太确定遗漏了什么 以下是ajax帖子: 视图: 控制器: [JsonpFilter] [AcceptVerbs(HttpVerbs.Post)] public JsonResult TestBin2AutomationResults(in

有谁能看出我在做什么错事,因为它让我有点疯狂(不确定是周五大脑还是婴儿大脑)无论如何

我有一篇Ajax文章,它在本地运行良好,但在部署到另一台服务器时不起作用

我已经发出了很多警报,以确保我得到了预期的参数,因此不太确定遗漏了什么

以下是ajax帖子:

视图:

控制器:

        [JsonpFilter]
        [AcceptVerbs(HttpVerbs.Post)]
        public JsonResult TestBin2AutomationResults(int widgetImpressionId, int retailerProductId, int quantity, string username, string password)
        {


            MessageBox.Show("We are inside TestBin2Automation controller " + widgetImpressionId + "/" + retailerProductId + "/" + quantity + "/" + username + "/" + password);
Global.asax

 routes.MapRoute("Bin2SubmitTestBin2Automation", "Widgets/TestBin2AutomationResults/{widgetImpressionId}/{retailerProductId}/{quantity}", new { controller = "Widgets", action = "TestBin2AutomationResults", widgetImpressionId = 0, retailerProductId = 0, quantity = 0, username = "", password = "" });
我没有进入控制器,因为MessageBox.Show没有显示

任何帮助都很感激,如果我整个周末都不把它挂在头上,那就太好了


非常感谢

既然ajax帖子在本地工作,请尝试在live web服务器上启用CORS。跨来源域可能是您遇到问题的原因。你的后端使用什么?是PHP、ASP.NET还是Python?

您的URL以“/”开头,这意味着它将尝试从域的根解析URL。请验证您的应用程序部署在域的根目录或任何虚拟目录下。如果它部署在虚拟目录下,则在进行AJAX调用时需要更改JavaScript代码以包含虚拟目录。

事实上,我试图在控制器中访问Amazon AWS,但没有将访问键放入配置中,我认为它没有进入该控制器,因为它没有击中目标第一行,但当我从控制器中删除几乎所有的逻辑时,它进入了控制器,因此它根本不是ajax调用,而是内部的逻辑-我只是想,因为它没有进入第一行,所以它没有进入控制器,这不是事实。因此,将控制器剥离为非常基本的,让我知道实际的问题是什么。

我在mvc项目中也面临这个问题

我通过以下步骤解决了这个问题

1) 将其放在脚本部分的布局页面中

<script type="text/javascript">
    var RootUrl = '@Url.Content("~/")';
</script>

它对我来说很好用,但是任何人都有其他的解决方案,那么请给我发帖子

你检查过正确的.js文件被加载了吗?在部署(非调试)时,我遇到了一些问题,脚本正在查找Ajax的.min.js版本,但我的构建没有(正确地)呈现.min.js。(我的快速修复方法是将.js的内容复制到现场数据的.min.js中。)thansk@KristenJukowski我已经在本地和现场检查了源代码,它们都链接到同一个scripts@anna尝试从URL中删除参数,然后像数据json一样传递它{'widgetImpressionId':widgetImpressionId,'retailerProductId':retailerProductId,'quantity':数量,'username':用户名,'password':密码}@anna在提交时检查浏览器控制台是否有错误。@anna在客户端和服务器端使用调试器,您将在一分钟内了解一切。只要我明白,就不需要启用CORS,因为请求位于同一域下,后端是asp.net mvc
<script type="text/javascript">
    var RootUrl = '@Url.Content("~/")';
</script>
var theUrl = RootUrl +"Widgets/TestBin2AutomationResults/" + widgetImpressionId + "/" + retailerProductId + "/" + quantity;