Internet Explorer中的Ajax请求500内部服务器错误

时间:2013-06-02 17:17:43

标签: asp.net json internet-explorer jquery

当我运行我的应用程序时,我只在IE 10中获得此500 Internal Server Error,该应用程序向页面方法发出简单的Ajax请求。我已经在Chrome和Firefox中对它进行了测试,它在这些方面运行良好。请尽快提出任何相关建议。 我将粘贴下面的代码:

        function GetProductId() {
        $.ajax({
            type: "POST",
            url: "Default.aspx/GenerateQrCode",
            data: "{'Products':" + JSON.stringify([{ ProductId: 1 }, { ProductId: 2 }]) + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
                alert(xhr.responseText);
                alert(thrownError);
            },
            success: function (msg) {
                var data = $.parseJSON(msg.d);
            }
        });
    }

[WebMethod]
    public static string GenerateQrCode(List<Product> Products)
    {
        List<string> images = new List<string>();

        foreach(var product in Products)
        {
            string qrCodeLocation = (from pic in products
                                    where pic.ProductId == product.ProductId
                                    select pic.QrCode).FirstOrDefault().ToString();
            images.Add(qrCodeLocation);
        }

        JavaScriptSerializer js = new JavaScriptSerializer();
        return js.Serialize(images);
    }

1 个答案:

答案 0 :(得分:1)

是.Net framework的错误:

IE10未映射为IE浏览器,而ASP.NET则返回通用浏览器的JS代码。

将此元标记添加到母版页的顶部,然后重试:

<meta http-equiv="X-UA-Compatible" content="IE=9"/>