为什么在 IIS7 中托管 MVC3 项目时,我的 AJAX 加载第一次失败
Why does my AJAX loading fail the first time through when hosting my MVC3 project in IIS7?
我正在编写一个带有几个选项卡的 mvc 应用程序。我注意到,当托管在IIS 7上时,主页有一个链接,触发JavaScript函数通过AJAX加载内容。
它在第一页加载时不起作用,但是当我访问其他选项卡并返回主页并单击链接时,它可以完美运行。有人可以告诉我这的原因或如何避免它吗?
加载代码
function GetLabels(project) {
var xmlHttp;
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
else {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
document.getElementById("light").innerHTML = xmlHttp.responseText;
}
}
xmlHttp.open("GET", "/Home/GetLabels?project="+project, true);
xmlHttp.send();
document.getElementById('light').style.display = 'block';
document.getElementById('fade').style.display = 'block';
document.getElementById("light").innerHTML =
"<img src='Content/load.gif' alt='Please wait' />";
}
触发它的链接
Click <a href="javascript:void(0)" onclick="GetLabels('A')">here</a>
你不应该像这样硬编码网址:
xmlHttp.open("GET", "/Home/GetLabels?project="+project, true);
您应该始终使用 url 帮助程序来生成它们:
xmlHttp.open("GET", "@Url.Action("GetLabels", "Home")?project=" + encodeURIComponent(project), true);
现在,无论您在Visual Studio的内置服务器还是IIS中托管,您的AJAX请求都将起作用。您的代码在 IIS 中不起作用的原因是,在 IIS 中,您的应用程序托管在 ni 一个虚拟目录中,您必须包含在您的 url 中。因此,正确的 url 不是/home/getlabels
而是/appname/home/getlabels
这是 url 帮助程序考虑的事情。
此外,由于您使用的是GET请求,因此Web浏览器可能会缓存结果,并且永远不会再次向服务器发送请求。若要避免这种情况,应将随机查询字符串参数附加到 url 或使用 POST 谓词。
相关文章:
- 我可以让我的Ajax调用引起一个“;进行中”;光标
- 为什么我的ajax在提交用@HtmlRenderPartial加载的表单时只调用fire一次
- 当在文档中拖动mouseup/mouseleve时,我想调用我的Ajax请求
- 我的ajax表单没有提交
- 为什么我的 ajax 调用没有生成,因为我包含 ajax 的 js 文件包含在 iframe 中
- 我的 AJAX 请求对象无法正确解析 URL 的协议部分
- 我的 Ajax php 代码无法正常工作
- 为什么我的 Ajax 加载 php 页面
- Jsonresult在我的Ajax调用中使用参数失败.为什么会发生这种事
- 为什么event.prventDefault()和'return false'停止我的AJAX表单提交操
- 我的ajax加载栏出了什么问题?为什么它不能正常工作
- 我的AJAX代码出了什么问题
- 为什么我的ajax调用返回null
- 为什么当我指定POST时,即使我已经尝试了类型和方法选项,我的ajax代码仍然会触发GET请求
- 如何使我的ajax请求更安全
- 为什么我的ajax请求返回一个空响应
- 我的Ajax请求返回成功,但脚本不是't已执行
- 我的AJAX文件不起作用
- 我的Ajax GET是't工作
- 我的 AJAX 表单没有发送到我的 PHP