为什么AJAX脚本未在IIS 7.5 Win 2008 R2服务器上运行



我有一个在开发服务器上在VS 2013上正常工作的Web应用程序,但是一旦我在IIS 7.5 2008 R2 Server上发布了它,AJAX脚本,位于我的自定义脚本文件上的AJAX脚本,不再工作,尽管其他不称呼Ajax的jQuery脚本确实可以正常工作。为了让Ajax在服务器中工作,还有其他需要做的事情吗?我已经阅读了一些帖子,但找不到答案。我在IIS和Ajax方面的经验有限。

//更新:

我已经发现Ajax脚本有效,并且问题很可能在以下行中:

" url:'/home/getrates',//请求的url"

使用调试器,我发现getRates()函数在远程服务器中未被调用,尽管它位于本地(vs vs 2013)开发服务器中。我看到的唯一区别是路径,但不知道如何修复它。以下是Ajax脚本:

// Retrieve rates and update partial view
$(function () {
    $('#reservSearch').submit(function () {
        if ($(this).valid()) {
            $("#theModal").modal("show");              // Display the in progress.....
            $.ajax({
                url: '/Home/GetRates',                 // URL for the request 
                data: $("#reservSearch").serialize(),  // the data to send (will be converted to a query string)
                type: "POST",                          // whether this is a POST or GET request  
                dataType: 'html',                      // the type of data we expect back   
                success: function (data) {             // code to run if the request succeeds; The response is passed to the function
                    $("#theModal").modal("hide");      // Close the in progress modal.....
                    $('#ratesView').html(data);        // Fill div with results
                },
                error: function (xhr, status) {        // code to run if the request fails; the raw request and status codes are passed to the function
                    $("#theModal").modal("hide");      // Close the in progress modal.....
                    alert('Error: Retrieving parking rates' + "</br>" + xhr.error);
                }
            });
        }
//        // it is important to return false in order to cancel the default submission of the form and perform the AJAX call
        return false;
    });
});

//第二个更新

遵循评论部分的指示后,这是AJAX调用的响应:

    <div id="header"><h1>Server Error in Application "DEFAULT WEB SITE"</h1></div> 
<div id="server_version"><p>Internet Information Services 7.5</p></div> 
<div id="content"> 
<div class="content-container"> 
 <fieldset><legend>Error Summary</legend> 
  <h2>HTTP Error 404.0 - Not Found</h2> 
  <h3>The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.</h3> 
 </fieldset> 
</div> 
<div class="content-container"> 
 <fieldset><legend>Detailed Error Information</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>Notification</th><td>MapRequestHandler</td></tr> 
    <tr class="alt"><th>Handler</th><td>StaticFile</td></tr> 
    <tr><th>Error Code</th><td>0x80070002</td></tr> 
   </table> 
  </div> 
  <div id="details-right"> 
   <table border="0" cellpadding="0" cellspacing="0"> 
    <tr class="alt"><th>Requested URL</th><td>http://localhost:80/Home/GetRates</td></tr> 
    <tr><th>Physical Path</th><td>C:inetpubwwwrootHomeGetRates</td></tr> 
    <tr class="alt"><th>Logon Method</th><td>Anonymous</td></tr> 
    <tr><th>Logon User</th><td>Anonymous</td></tr> 
   </table> 
   <div class="clear"></div> 
  </div> 
 </fieldset> 
</div> 
<div class="content-container"> 
 <fieldset><legend>Most likely causes:</legend> 
  <ul>  <li>The directory or file specified does not exist on the Web server.</li>  <li>The URL contains a typographical error.</li>    <li>A custom filter or module, such as URLScan, restricts access to the file.</li> </ul> 
 </fieldset> 
</div> 
<div class="content-container"> 
 <fieldset><legend>Things you can try:</legend> 
  <ul>  <li>Create the content on the Web server.</li>  <li>Review the browser URL.</li>    <li>Create a tracing rule to track failed requests for this HTTP status code and see which module is calling SetStatus. For more information about creating a tracing rule for failed requests, click <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul> 
 </fieldset> 
</div> 

<div class="content-container"> 
 <fieldset><legend>Links and More Information</legend> 
  This error means that the file or directory does not exist on the server. Create the file or directory and try the request again. 
  <p><a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=404,0,0x80070002,7601">View more information &raquo;</a></p> 
 </fieldset> 
</div> 
</div> 
</body> 
</html> 

如何调试ajax调用

全部答案分布在有关OP问题的评论中,但我认为这有帮助:

  1. 转到使Ajax调用的网页
  2. 在Chrome Press F12中
  3. 转到网络选项卡
  4. 通过提交表单#ReservSearch
  5. 激活AJAX调用
  6. 在"网络"选项卡中查找/home/getrates
  7. 单击它
  8. 检查预览和响应选项卡以查看服务器的输出
  9. 它是否显示您的Ajax调用正在听的预期HTML数据?

最新更新