2015-11-11 6 views
1

Хотя это, кажется, общая ошибка, ни один из других подобных вопросов на SO не показал мне решение. Поэтому позвольте мне поделиться своим кодом.jQuery .getJSON метод терпит неудачу с parseerror

стороне клиента HTML/JQuery:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title></title> 
     <script type="text/javascript" src="Scripts/jquery-2.1.4.min.js"></script> 
<script type="text/javascript"> 
      function DisplayJSON() { 
       $.getJSON("Test1.ashx") 
        .done(function (p) { 
         alert(p.FirstName + ' ' + p.LastName); 
        }) 
        .fail(function (x, textStatus, error) { 
         alert("Get JSON failed, status: " + textStatus + ", error: " + error); 
        }); 
      } 
     </script> 
    </head> 
    <body> 
     <input type="button" name="btnTest" value="Get JSON" onclick="DisplayJSON();" /> 
    </body> 
</html> 

стороне сервера обработчика HTTP .NET/C# (Test1.ashx):

public class Test1 : IHttpHandler 
{ 
    public void ProcessRequest(HttpContext context) 
    { 
     Person p = new Person() 
     { 
      FirstName = "Angela", 
      LastName = "Smith", 
      Gender = "F", 
      BirthYear = 2009 
     }; 

     // to serialize an object to string 
     string jsonText = fastJSON.JSON.ToJSON(p); 

     context.Response.ContentType = "application/json"; 
     context.Response.Write(jsonText); 
    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

public class Person 
{ 
    public string LastName { get; set; } 
    public string FirstName { get; set; } 
    public int BirthYear { get; set; } 
    public string Gender { get; set; } 
} 

При попытке извлечь содержимое JSON, он всегда терпит неудачу со статусом «parseerror» и ошибкой «SyntaxError: Invalid character». Я посмотрел и посмотрел, и я просто не нашел преступника. Если я поставлю точку останова в своем кодовом коде сервера, она никогда не попадет, так что окажется, что вызов getJSON не сформирован должным образом, но я просто не вижу в этом ничего плохого. Надеюсь, кто-то еще может указать, что я делаю неправильно.

UPDATE: ошибка изображения

error image

+0

так, просто проверьте строку, что вы получаете с сервера – Grundy

+0

можете ли вы предоставить скриншот с ошибкой синтаксического анализа? – Grundy

+0

Очевидно, что вызов никогда не попадает на сервер, так как моя точка останова на первой строке кода сервера не достигнута. – PongGod

ответ

0

ОК, я, наконец, понял, что был неправ, и, конечно, оказалось, что-то глупо, что я проглядел. Проект, в котором я проводил этот пробный тест на дому, - это тот, который настроен для проверки подлинности форм. Когда я пытался проверить эту страницу, я пропустил шаг входа, поэтому, очевидно, запрос на ASHX был отклонен из-за отсутствия аутентифицированного пользователя. Если я впервые вхожу в систему перед тем, как перейти туда, он работает нормально. Когда я попробовал это в офисе, я просто бросил его в совершенно новый проект, который не был настроен для проверки подлинности форм.

 Смежные вопросы

  • Нет связанных вопросов^_^