【问题标题】:Sending GET to server gives no response (but status returned)向服务器发送 GET 没有响应(但返回状态)
【发布时间】:2011-05-16 18:10:48
【问题描述】:

我正在向我的服务器发送一个 ajax 请求,以更新那里的一些数据。使用 jquery 的 get 函数发送请求。成功后我想执行一些操作,但不幸的是整个操作失败,因为服务器没有响应,即使 firebug 清楚地显示 200 状态:


更重要的是,当我用浏览器输入这个地址时,一切看起来都很好。任何想法为什么它可能无法正常工作?这是我的js:

    $(".interests-delete").live("click", function(){
        var id = $(this).attr('title');
        var user_id = "100000717262400";

        $.ajax({
            type: "GET",
            url: "http://dev1.gecoloco.com/rte/ilike.php?",
            data: "u=" + user_id + "&d=" + id,
            dataType: "json",
            success: function(response, status){
                alert(status);
                console.log(response);
                getLikes();
            }
        });
        return false;            
    });

【问题讨论】:

  • 尝试省略url参数末尾的问号。
  • 如果没有问号,则 url 更改为 ...php?u= ,没有额外的 '&'。但问题依然存在。

标签: jquery ajax get xmlhttprequest response


【解决方案1】:

这很可能是由于“同源策略”,它要求您的 html 应该来自发出 ajax 调用的同一个域。尝试不是从文件系统加载您的 html 页面,而是通过为 ajax 调用提供服务的同一服务器加载。它会工作的。

【讨论】:

    【解决方案2】:

    您的网址在那里看起来有点滑稽。部分:“?&u=...”应该是“?u=...”

    【讨论】:

    • 看起来 jq 添加了这个额外的& 符号。仍然可以使用添加的链接:dev1.gecoloco.com/rte/ilike.php?u=100000717262400&d=2
    • @mastodon ,直接把网址粘贴到浏览器上看看怎么回事??
    • 检查了 chrome 和 ff,我得到了 json 响应。那我错过了什么?
    • @mastodon ,是客户端和服务器都在同一台服务器上,否则可能是跨域请求问题...
    • @mastodon ,如果那是问题搜索..这个 SO 本身有很多线程
    【解决方案3】:

    您的成功功能可能有问题。您可能会收到响应,但您的 javascript 在您的函数中某处崩溃。

    【讨论】:

    • 但是成功的功能甚至没有被触发,因为没有实际的响应。
    【解决方案4】:

    我之前在浏览器中从本地文件系统打开页面时遇到过这种情况,例如file:///C:/Users/Eason/Desktop/mailer/index.html.

    当此页面尝试发出 AJAX 请求时,会导致该问题。当它发布在 Web 服务器(例如 Tomcat)上时,它会起作用。

    这是浏览器中的一项安全限制,用于防止不安全的跨域流量。

    【讨论】:

      猜你喜欢
      • 2019-04-09
      • 2021-03-20
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多