【问题标题】:jQuery .getJSON method fails with parseerrorjQuery .getJSON 方法因 parseerror 失败
【发布时间】:2015-11-11 06:04:37
【问题描述】:

虽然这似乎是一个常见错误,但关于 SO 的其他类似问题都没有向我揭示解决方案。所以让我分享我的代码。

客户端 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 调用没有正确形成,但我只是没有看到它有任何问题。希望其他人能指出我做错了什么。

更新:错误图片

【问题讨论】:

  • 所以,只需检查您从服务器获得的字符串
  • 能否提供解析错误的截图?
  • 显然调用甚至没有到达服务器,因为我在服务器代码第一行的断点没有到达。
  • 我的意思是浏览器中的错误,SyntaxError: Invalid character 我认为这是来自控制台?
  • 您是否尝试过此代码以查看它是否适合您?

标签: jquery .net getjson ashx parse-error


【解决方案1】:

好的,我终于弄清楚出了什么问题,当然结果是我忽略了一些愚蠢的事情。我在家中进行此概念验证测试的项目是为表单身份验证配置的项目。当我尝试测试该页面时,我跳过了登录步骤,因此显然由于缺少经过身份验证的用户,对 ASHX 的请求被拒绝了。如果我在导航之前先登录,它工作正常。当我在办公室尝试这个时,我只是把它扔到一个没有配置表单身份验证的全新项目中。

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 2013-08-10
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 2017-01-31
    • 2011-02-05
    • 2014-01-31
    • 2018-09-30
    相关资源
    最近更新 更多