【问题标题】:.getJSON method is not working in Firefox and chrome. Works fine in IE.getJSON 方法在 Firefox 和 chrome 中不起作用。在 IE 中运行良好
【发布时间】:2025-12-19 13:30:12
【问题描述】:

我有一个 .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 中,控制不在函数回调中。 请看看并给我建议。

【问题讨论】:

  • 为什么会有这么旧的jQuery版本?
  • 什么“不起作用”?控制台是否报错?如果没有,是否发送网络流量?它是否按预期/按预期返回?
  • 哪个版本的 jquery 适合这个。请指教
  • 使用最新的jquery版本
  • jquery 版本使用没有限制。但最好选择最新版本,因为有更多功能可用。迁移到最新版本时要小心,您使用的某些方法可能已被弃用。

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


【解决方案1】:

如果您的代码在 IE 上正常工作但不能在 Chrome 上正常工作,您可以尝试任何可用的虚拟服务器,如 Python Server,

按照步骤进行

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

python -m SimpleHTTPServer

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 删除了调试器; .但是没有用。还是一样的问题
    • 只是为了确定。你把他们两个都删了,对吧?在 chrome/FF 中调试时是否出现错误?
    • 是的,我删除了调试器;但我在 chrome/FF 中没有收到任何错误消息。控制没有进入函数回调(数据,状态,jqXHR)
    【解决方案3】:

    现在可以正常使用了。

    我在 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();
            }
        }
    

    感谢大家的支持..

    【讨论】:

      最近更新 更多