jQuery和AJAX部署到服务器后不工作

jQuery和AJAX部署到服务器后不工作,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我有一个项目在我的本地机器上运行良好,但在它部署到服务器后,就无法运行了。如果我在javascript中设置断点,它会命中断点并遍历代码,但不会执行它应该执行的操作(jquery自动完成)。我甚至确保我需要的脚本文件存储在服务器上。有什么东西我看过头了吗 需要运行的代码: <script type="text/javascript"> $(document).ready(function () { $("input.autocomplete").autocom

我有一个项目在我的本地机器上运行良好,但在它部署到服务器后,就无法运行了。如果我在javascript中设置断点,它会命中断点并遍历代码,但不会执行它应该执行的操作(jquery自动完成)。我甚至确保我需要的脚本文件存储在服务器上。有什么东西我看过头了吗

需要运行的代码:

<script type="text/javascript">
    $(document).ready(function () {
        $("input.autocomplete").autocomplete({
            appendTo: '.container',
            source: function (request, response) {
                $.ajax({
                    url: '/Home/GetUsers',
                    type: "POST",
                    dataType: "json",
                    data: { query: request.term },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item, value: item };
                        }));
                    }
                });
            }
        });
    })
</script>

$(文档).ready(函数(){
$(“input.autocomplete”).autocomplete({
附录:'.container',
来源:功能(请求、响应){
$.ajax({
url:“/Home/GetUsers”,
类型:“POST”,
数据类型:“json”,
数据:{query:request.term},
成功:功能(数据){
响应($.map)(数据、功能(项){
返回{label:item,value:item};
}));
}
});
}
});
})
_包含jquery的Layout.cshtml页面:

@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/jquery-ui.css")
@Styles.Render("~/Content/themes/base/jquery-ui.autocomplete.css")
@Scripts.Render("~/bundles/modernizr")

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-ui-1.8.20.js")"></script>
@Styles.Render(“~/Content/css”)
@style.Render(“~/Content/themes/base/jqueryui.css”)
@style.Render(“~/Content/themes/base/jqueryui.autocomplete.css”)
@Scripts.Render(“~/bundles/modernizer”)

我需要将url更改为在服务器上工作的url。我的最终代码如下所示:

<script type="text/javascript">
$(document).ready(function () {
    $("input.autocomplete").autocomplete({
        appendTo: '.container',
        source: function (request, response) {
            $.ajax({
                url: '/Lookup/Home/GetUsers',
                type: "POST",
                dataType: "json",
                data: { query: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                        return { label: item, value: item };
                    }));
                }
            });
        }
    });
})
</script>

$(文档).ready(函数(){
$(“input.autocomplete”).autocomplete({
附录:'.container',
来源:功能(请求、响应){
$.ajax({
url:“/Lookup/Home/GetUsers”,
类型:“POST”,
数据类型:“json”,
数据:{query:request.term},
成功:功能(数据){
响应($.map)(数据、功能(项){
返回{label:item,value:item};
}));
}
});
}
});
})

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

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

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

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

这对我来说很有效,但是任何人都有其他的解决方案,然后请给我发帖子,虽然这是一个很老的问题,但这可能会对将来的人有所帮助

如果它是一个已开发的.asmx页面,那么我们必须在web.config中指定HTTP谓词才能访问它

它将在本地工作,但在IIS上部署后不会工作

例:


谢谢
Pooja G有同样的问题,部署到服务器后ajax调用不起作用。Amol的方法适合部署,但在本地开发计算机上不起作用。在本地开发上调试时,必须删除“~”

经过一些研究,找到一个更好的解决方案,可以适应这两种环境。在ajax方法中,将URL参数更改为:

 url: "@Url.Action("GetUsers", "Home")"

在您的情况下,服务器不支持Url

删除
'/Home/GetUsers'


并使用
url:@url.Action(“Action”,“Controller”)”

显示代码。这样我们才能帮上忙。这会给你带来任何错误吗?这是相当模糊的,没有提供代码,因此很难说。您忽略了在问题中实际发布代码,以便我们提供帮助。很抱歉,意外地太快点击了提交。添加code@Danger_Fox:在浏览器中,调试工具查看网络请求。您应该看到向服务器发出的AJAX请求,并看到服务器对该请求的响应。对于自动完成,您希望它返回某种数据。为什么需要将
/Lookup
添加到url?
  <webServices>
    <protocols>
      <add name="HttpGet"/>
      <add name="HttpPost"/>
    </protocols>
  </webServices>
 url: "@Url.Action("GetUsers", "Home")"