app_offline.htm不会返回对ajax请求的响应

时间:2016-05-09 12:57:21

标签: javascript jquery asp.net ajax wcf

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

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

并发布到我的服务器。

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

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

enter image description here

好的,一切都很酷。

但是,当我从我的应用程序执行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所有属性。 我试过了所有人:

响应 responseBody 的responseType responseXML的 responseJSON 状态 状态文本

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

2 个答案:

答案 0 :(得分:0)

此代码实际上从不进入失败功能,因为请求没有失败。

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

t = threading.Thread(target=startSuggestworker, args=(start_keyword,))
#                                                                  ^ note the comma

哪个不会产生任何错误,并且会存储在"响应" .done函数的变量。

答案 1 :(得分:0)

我认为你忽略了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>

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