我正在编写一个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标题,因为正确指出的评论者之一没有价值.
我正在从房地产数据库中检索 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
如果不进行任何进一步处理就可以这样做会很酷。关于这样做的任何想法?谢谢。
我希望我的 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 连接到服务器的最佳实践是什么?谢谢。
[这是 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)