【问题标题】:app_offline.htm doesn't return response to ajax requestapp_offline.htm 不返回对 ajax 请求的响应
【发布时间】:2016-09-04 03:03:16
【问题描述】:

我创建了一个文件 app_offline.html,内容:

{
   "ServerUnavailable":"true",
   "IssueType":"Maintenance",
   "ErrorMessage":"Servers are currently down for maintanance, please try again later"
}

并发布到我的服务器。

我想在我的应用中显示有关服务器停机时间的消息。

当我通过谷歌浏览器导航到我的服务器时,我看到:

好的,一切都很好。

但是当我从我的应用程序发出 ajax 请求时:

$.ajax({
  // bla bola bla
})
.done(function (response, textStatus, jqXHR) {
  // bla bola bla
})
.fail(function (XMLHttpRequest, textStatus, errorThrown) {
  // HERE I WANT TO DISPLAY A MESSAGE
});

XMLHttpRequest 的所有属性都没有定义。 我都试过了:

响应 响应体 响应类型 响应XML 响应JSON 状态 状态文本

在哪里可以找到我在浏览器中看到的响应?或者我错过了什么?

【问题讨论】:

  • 拜托,你能提供请求参数吗?特别要确保您尝试检索的 URL 是正确的。

标签: javascript jquery asp.net ajax wcf


【解决方案1】:

此代码实际上从未进入失败函数,因为请求没有失败。

当您请求 app_offline.html 文件时,它只会返回

{
   "ServerUnavailable":"true",
   "IssueType":"Maintenance",
   "ErrorMessage":"Servers are currently down for maintanance, please try again later"
}

不会产生任何错误,并将存储在 .done 函数的“响应”变量中。

【讨论】:

  • 不,你错了。代码因 503 错误代码而失败
【解决方案2】:

我认为您忽略了 Http Header 要求。标头应该是 Content-Type: application/json,但您使用的是 html 文件,因此 IIS 使用 text/html 标头提供此文件。

看看这个https://www.iis.net/configreference/system.webserver/staticcontent/mimemap

<configuration>
   <system.webServer>
      <staticContent>
         <mimeMap fileExtension=".syx" mimeType="application/octet-stream" />
         <mimeMap fileExtension=".tab" mimeType="text/plain" />
      </staticContent>
   </system.webServer>
</configuration>

在应用此功能之前,您可能需要更改文件的扩展名。这样可能更容易。

【讨论】:

    猜你喜欢
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 2014-03-12
    • 2013-12-31
    • 2013-02-08
    • 1970-01-01
    相关资源
    最近更新 更多