.getJSON方法在Firefox和Chrome中不起作用。在IE中正常工作

时间:2013-09-19 04:47:16

标签: c# jquery json visual-studio-2012

我有一个.getJSON方法。它在IE浏览器中运行良好,并且在其他浏览器(如firefox和Chrome)中无效。这是代码

<script src="Themes/Js/jquery_v_1.4.js"></script>
<script type="text/javascript">
        var url;
        $(document).ready(function () {
            url = "http://192.168.0.171:8080/api/account";
            $('#btnSubmit').click(function (e) {
                debugger;
                $.getJSON(url, function callback(data, status, jqXHR) {
                    debugger;
                    $('#<%= ddlList.ClientID %>').append('<p>Name : ' + jqXHR.responseText + '</p>');
                });
            });
        });
</script>

在Firefox和Chrome中,控件不会进入函数回调。 请看一下并给我建议。

3 个答案:

答案 0 :(得分:2)

如果您的代码正常使用IE但不适用于Chrome,您可以尝试使用任何可用的虚拟服务器,例如Python Server,

按照步骤

1.在相应的文件夹中运行命令(在Linux中)

python -m SimpleHTTPServer

2.打开Chrome浏览器并浏览localhost:8000 / filename

答案 1 :(得分:0)

我认为debugger;语句可能只在IE中受支持。试着把它拿出来

答案 2 :(得分:0)

现在工作正常。

我在Web api Global.asax

中添加了以下代码
protected void Application_BeginRequest(object sender, EventArgs e)
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
        if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
            HttpContext.Current.Response.End();
        }
    }

感谢所有人的支持..