我有一个在我的本地计算机上工作正常的项目,但在部署到服务器后,无法正常工作。如果我在javascript中放置断点它会触及它们并通过代码,但不会执行它应该执行的操作(jquery autocomplete)。我甚至确保我需要的脚本文件存储在服务器上。有什么我在看的东西吗?
需要运行的代码:
<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>
_Layout.cshtml包含jquery的页面:
@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>
答案 0 :(得分:5)
我在mvc项目中也面临这个问题......
我通过以下步骤解决了这个问题。
1)将它放在脚本部分的<布局页面
中<script type="text/javascript">
var RootUrl = '@Url.Content("~/")';
</script>
2)在ajax url中添加“RootUrl”变量。 (它也在你的Js文件中运行你在你的ajax url之前添加“RootUrl”)
url: RootUrl +'Home/GetUsers';
它对我来说是完美的,但是任何人都有其他解决方案然后发布我
答案 1 :(得分:4)
我需要将网址更改为在服务器上运行的网址。我的最终代码如下所示:
<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>
答案 2 :(得分:2)
虽然这是一个非常古老的问题,但这可能会对将来有所帮助。
如果它是一个开发的.asmx页面,那么我们必须在web.config中指定HTTP谓词来访问它。
它可以在本地工作,但不能在IIS上部署。
EX:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
由于 Pooja G
答案 3 :(得分:1)
遇到同样的问题,ajax调用在部署到服务器后无法正常工作。 Amol的方法适用于部署,但这在本地开发计算机上不起作用。在本地开发上调试时必须删除“〜”。
经过一些研究,找到一个更好的解决方案可以适应两种环境。在您的ajax方法中,将网址参数更改为以下方式:
url: "@Url.Action("GetUsers", "Home")"