小编ric*_*ver的帖子

XMLHttpRequest()&net :: ERR_NAME_NOT_RESOLVED

我正在编写一个javascript应用程序,它发出远程服务器的HTTP请求.用户将输入主机名.

如果他们输入无法解析的DNS名称,我想提供诊断消息.这是当前的代码:

var req, t, url;
url = 'http://definitelydoesntexist0x314159.com';
req = new XMLHttpRequest();
req.open('GET', url, true);
req.onreadystatechange = function() {
  if (req.readyState == 4) {
    t = req.statusText;
  }
};
req.send();
Run Code Online (Sandbox Code Playgroud)

在onreadystatechange函数中,req的状态为= 0,响应为"",因此没有太多迹象表明出现了什么问题.然而,控制台显示"无法加载资源:net :: ERR_NAME_NOT_RESOLVED",因此浏览器(Chrome)能够弄清楚发生了什么.

如何获得ERR_NAME_NOT_RESOLVED的指示?

更新:我回到这个问题,使用的策略是任何不是'超时'的响应意味着名称已解决,主机回答等.

我原来问题的答案似乎是:浏览器本身(在这种情况下是Chrome)检测到无法解析并在控制台中显示它,但XMLHttpRequest API不够丰富,无法指明原因.因此,可怜的Javascript程序员会将超时作为一种解决方法.

我还删除了CORS标题,因为正确指出的评论者之一没有价值.

javascript dns xmlhttprequest

8
推荐指数
1
解决办法
9074
查看次数

jq 和数学函数

我正在从房地产数据库中检索 JSON。jq可以很容易地拉出单独的属性/值,但有些值的单位不方便。例如,LotSize 变量以平方英尺为单位(需要除以 43560 得到英亩,这是更常规的),而 dateSold 是 Linux 时间戳。这是一个示例:

{
    "lotsize": 65340,
    "dateSold": 1207897200
} 
Run Code Online (Sandbox Code Playgroud)

我希望能够对 jq 处理的值进行数学运算。我已经阅读了手册(https://stedolan.github.io/jq/manual/#Math),但它并没有让我了解如何去做。我想将上面的 JSON 数据转换成这样:

{
    "acres": 1.5,
    "soldOn": "Friday, April 11, 2008"
} 
Run Code Online (Sandbox Code Playgroud)

我知道我可以修补 Excel,但jq如果不进行任何进一步处理就可以这样做会很酷。关于这样做的任何想法?谢谢。

timezone json jq

7
推荐指数
1
解决办法
4125
查看次数

设置 React 组件来监听 socket.io

我希望我的 React 组件监听来自 socket.io 的事件。如果我的 HTML 文件包括:

<script src="socket.io/socket.io.js"></script>

然后组件的构造函数()有:

this.socket = io(); // eslint-disable-line no-undef

HTML 文件从我的 Express 服务器检索正确的 socket.io 客户端代码,一切正常。

但这感觉太俗气了。我讨厌依赖全局窗口名称空间来查找 io() 函数。让 React 组件通过 socket.io 连接到服务器的最佳实践是什么?谢谢。

javascript express socket.io reactjs

3
推荐指数
1
解决办法
2808
查看次数

Socket.io 在 Firefox 上获得“错误的握手方法”,但在 Chrome 或 Safari 上没有

[这是 Github 上 socket.io 问题 #2717 的副本。那里没有答案,我很想得到一些故障排除提示...]

我有一个测试页面(如下),它创建一个 socket.io 连接回到服务器,然后监听并记录“时间”消息。它适用于 OSX 10.10.5 上最近的 Chrome 和 Safari。我使用 Socket.io 1.5.0 进行所有测试。

在 Firefox 49.0.1 中,每个 POST 请求都会得到一个带有bad handshake method. 没有Socket.io connected...在控制台消息,并且没有time邮件到达(参见图)。关于 POST 的其他有趣信息是:

- Params: EIO:3, t: LUuPeKr, transport:polling
- POST raw data: "1:1"
Run Code Online (Sandbox Code Playgroud)

测试页面连接回 create-react-app 应用程序 (0.6.1),该应用程序将请求代理到我自己在 localhost:3001 上的服务器。如上所述,此页面在 Chrome 和 Safari 中按预期工作。

我可以提供哪些其他信息来调试它?

图片

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>SOCKET.IO TEST PAGE</title>
</head>
<body>
<h1>Socket.io Test Page</h1>

<script src="/socket.io/socket.io.js"></script> …
Run Code Online (Sandbox Code Playgroud)

handshake socket.io

1
推荐指数
1
解决办法
3964
查看次数