为什么 Ajax 脚本没有在 IIS 7.5 Win 2008 R2 服务器上运行? [英] Why the Ajax script is not running on IIS 7.5 Win 2008 R2 server?
问题描述
我有一个 Web 应用程序可以在我的开发服务器上的 VS 2013 上正常运行,但是一旦我将它发布到 IIS 7.5 2008 R2 服务器上,位于我的自定义脚本文件中的 Ajax 脚本就不再工作了,尽管其他不调用 Ajax 的 JQuery 脚本可以正常工作.为了让ajax在服务器中工作,还有什么需要做的吗?我已经阅读了一些关于的帖子,但还没有找到答案.我在 IIS 和 Ajax 方面的经验有限.
//更新:
我已经发现 Ajax 脚本可以工作并且问题很可能出在以下行中:
"url: '/Home/GetRates',//请求的 URL"
使用调试器我发现在远程服务器中没有调用 GetRates() 函数,尽管它在本地(在 VS 2013 下)开发服务器中.我看到的唯一区别是路径,但不知道如何修复它.下面是 Ajax 脚本:
//检索汇率并更新局部视图$(函数(){$('#reservSearch').submit(function () {如果 ($(this).valid()) {$("#theModal").modal("show");//显示进行中.....$.ajax({url: '/Home/GetRates',//请求的 URLdata: $("#reservSearch").serialize(),//要发送的数据(将转换为查询字符串)type: "POST",//这是 POST 还是 GET 请求dataType: 'html',//我们期望返回的数据类型success: function (data) {//请求成功时运行的代码;响应传递给函数$("#theModal").modal("隐藏");//关闭正在进行的模态.....$('#ratesView').html(data);//用结果填充div},error: function (xhr, status) {//请求失败时运行的代码;原始请求和状态代码被传递给函数$("#theModal").modal("隐藏");//关闭正在进行的模态.....alert('错误:检索停车费' + "</br>" + xhr.error);}});}////为了取消表单的默认提交并执行AJAX调用,返回false很重要返回假;});});
//第二次更新
按照评论部分中的说明进行操作后,这是来自 ajax 调用的响应:
<div id="header"><h1>DEFAULT WEB SITE"应用程序中的服务器错误</h1></div><div id="server_version"><p>互联网信息服务 7.5</p></div><div id="内容"><div class="content-container"><fieldset><legend>错误总结</legend><h2>HTTP 错误 404.0 - 未找到</h2><h3>您要查找的资源已被删除、更名或暂时不可用.</h3></fieldset>
<div class="content-container"><fieldset><legend>详细的错误信息</legend><div id="details-left"><table border="0" cellpadding="0" cellspacing="0"><tr class="alt"><th>Module</th><td>IIS Web Core</td></tr><tr><th>通知</th><td>MapRequestHandler</td></tr><tr class="alt"><th>Handler</th><td>StaticFile</td></tr><tr><th>错误代码</th><td>0x80070002</td></tr>
<div id="details-right"><table border="0" cellpadding="0" cellspacing="0"><tr class="alt"><th>请求的 URL</th><td>http://localhost:80/Home/GetRates</td></tr><tr><th>物理路径</th><td>C:inetpubwwwrootHomeGetRates</td></tr><tr class="alt"><th>登录方法</th><td>匿名</td></tr><tr><th>登录用户</th><td>匿名</td></tr><div class="clear"></div>
</fieldset>