javascript - JQuery JSON 调用返回 ERR_EMPTY_RESPONSE 超时

标签 javascript jquery ajax json

我有一个本地网络服务器在端口 4444 上运行。 该网络服务器提供 html 页面和其他文件,一切正常。但是,当我尝试从服务器获取 JSON 数据时,我遇到超时,并在 Javascript 控制台中出现错误 ERR_EMPTY_RESPONSE。如果我将 JSON 作为页面加载,它会正确显示。

我使用 Chrome 和 Firefox 进行了测试。除了 Chrome 中的超时和 ERR_EMPTY_RESPONSE 之外,两者都不会显示任何错误。

  • 可能是 JSON 格式错误。
  • 可能存在另一个与域相关的问题(我认为是因为我在本地托管)。
  • 或者我的 HTTP header 错误。

这是我的 JSON 数据。

[
{
"x": "286.610989010989",
"y": "43.716483516483514",
"r": "103.5956043956044",
"g": "127.81208791208792",
"b": "143.07472527472527"
},
{
"x": "286.610989010989",
"y": "43.716483516483514",
"r": "103.5956043956044",
"g": "127.81208791208792",
"b": "143.07472527472527"
},
]

这是我的 ajax 调用。我还尝试设置内容类型。

function getData() {
    $.ajax({
        url: "/data", 
        type: "json",
        timeout: 3000, 
        success: actData,
        complete: getData,
        error: function(xhr, status, error) {
          console.log(error);
        }
    });
}

这些是我的 HTTP header 。我尝试将内容类型设置为 application/json 和 text/html。

    os.print("HTTP/1.0 200" + "\r\n");
    os.print("Content-Type: text/plain" + "\r\n");

    os.print("Content-Length: " + data.length() + "\r\n");
    os.print("\r\n");
    os.write(data);

最佳答案

我发现了问题所在,而且比我想象的要愚蠢。我过滤了我的请求,只允许 POST 和 GET,因为我认为过滤输入是好的行为。然而,JSON 请求实际上使用 JSON 而不是 GET 发送 header 。于是就被过滤掉了。因此,我实际上可以在浏览器中看到它,但不能将其作为 JSON 检索(因为这样它会发送 JSON header )。

关于javascript - JQuery JSON 调用返回 ERR_EMPTY_RESPONSE 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32360491/

相关文章:

javascript - Knockout.js 3 中的 PreventDefault() `click`

css - 在索引页中渲染一个 show Action - rails

javascript - 使用 Regex 将 "margin"替换为 HTML 标记内的填充

javascript - 动态添加图像到列表元素

javascript - 为什么 serviceworker 会导致每第二个 jquery post 立即停止?

javascript - 使用 JQuery 或 Javascript 寻求同时淡入淡出和模糊效果

javascript - float 和淡入淡出的文本?

ajax - 如何在页面离开时终止长轮询 Ajax 请求

javascript - Stack Overflow 如何在不重新加载页面的情况下通知服务器端事件?我在 Firebug 中没有看到任何请求

javascript - 在类中使用 setInterval() 和 clearInterval()