Резюме
context.Response.Header.Add("Content-Type", "application/json");
игнорируется, пока
context.Response.ContentType = "application/json";
прерывает вызовы jQuery ajax.
=============================================== =====================
У меня есть IHttpHandler, который возвращает некоторые данные JSON и определяется как:
void ProcessRequest(HttpContext context)
{
context.Response.Write(/* some JSON */);
}
и вызывается с использованием методов jQuery Ajax следующим образом:
$.get(SOME_URL, SUCCESS);
Это отлично работает.
Однако, если метод ProcessRequest определен следующим образом:
void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json"
context.Response.Write(/* some JSON */);
}
происходит сбой, это означает, что функция SUCCESS
в $.get(SOME_URL, SUCCESS);
никогда не срабатывает, однако правильное содержимое все равно возвращается с ожидаемыми заголовками согласно Fiddler2.
С другой стороны, если метод ProcessRequest определен так:
void ProcessRequest(HttpContext context)
{
context.Response.Header.Add("Content-Type", "application/json");
context.Response.Write(/* some JSON */);
}
все работает, но Fiddler2 сообщает, что он возвращается как тип "text / html".
Есть идеи, почему это происходит?
ПРИМЕЧАНИЕ. URL-адрес не имеет расширения и приложение работает на IIS 7.5, поэтому мне интересно, связана ли проблема с типами IIS MIME.