Javascript 在获取URL之前,请先了解其性质

Javascript 在获取URL之前,请先了解其性质,javascript,http,meteor,Javascript,Http,Meteor,在获取URL之前,是否可能知道URL的性质 我有一个特别的URL,以m3u结尾,但不是一个简单的文件,我可以下载。这实际上是一个无线电流。正如我所期望的(有限)文件一样,GET方法永远不会结束。超时选项在这种情况下不起作用(正常) 安全的解决方案应该是在实际获取文件之前询问响应的类型。 我该怎么做 谢谢, Mickeel.即使在这种特殊情况下,运行HEAD时遇到HTTP解析错误,但我知道流是正常的(如果有人能解释原因,我将不胜感激),我认为Opal给出了一般解决方案: 您可以先运行HEAD请求

获取
URL之前,是否可能知道URL的性质

我有一个特别的URL,以m3u结尾,但不是一个简单的文件,我可以下载。这实际上是一个无线电流。正如我所期望的(有限)文件一样,
GET
方法永远不会结束。超时选项在这种情况下不起作用(正常)

安全的解决方案应该是在实际获取文件之前询问响应的类型。 我该怎么做

谢谢,
Mickeel.

即使在这种特殊情况下,运行HEAD时遇到HTTP解析错误,但我知道流是正常的(如果有人能解释原因,我将不胜感激),我认为Opal给出了一般解决方案:

您可以先运行HEAD请求


我想您可以先运行
请求(而不是
获取
)并验证头。然后在做出
GET
之后,您将知道如何做出反应

不幸的是,在这种特殊情况下,
HEAD
适用于第一个请求(返回重定向):


我想您可以先运行
请求(而不是
获取
)并验证头。然后在执行
GET
之后,您将知道如何做出反应。对于这个特定的URL,当运行HEAD时,我会得到一个HTTP解析错误。这很奇怪,因为其他网站可以很好地运行这个电台。不管怎样,谢谢你的提示。我认为这是一个很好的解决方案。是的,他们可能不支持
HEAD
方法。我可以自己添加答案吗?是的,当然,我会接受它的汉克斯蛋白石做测试!
const options = {timeout: 5000};
return HTTP.call('GET', "http://av.rasset.ie/av/live/radio/junior.m3u", options);
 curl -v -X HEAD http://icecast1.rte.ie/junior               http://av.rasset.ie/av/live/radio/junior.m3u
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the 
Warning: way you want. Consider using -I/--head instead.
*   Trying 104.16.107.29...
* TCP_NODELAY set
* Connected to av.rasset.ie (104.16.107.29) port 80 (#0)
> HEAD /av/live/radio/junior.m3u HTTP/1.1
> Host: av.rasset.ie
> User-Agent: curl/7.51.0
> Accept: */*
> 
< HTTP/1.1 302 FOUND
< Date: Mon, 13 Nov 2017 11:07:33 GMT
< Content-Type: text/html; charset=utf-8
< Connection: keep-alive
< Set-Cookie: __cfduid=d89353ae357a0452208835b3092f0fbee1510571253; expires=Tue, 13-Nov-18 11:07:33 GMT; path=/; domain=.rasset.ie; HttpOnly
< Location: http://icecast1.rte.ie/junior
< X-Server-Name: djd
< Cache-Control: max-age=0
< Accept-Ranges: bytes
< X-Varnish: 2802121867
< X-Served-By: MISS: mt-www2.rte.ie
< CF-Cache-Status: MISS
< Server: cloudflare-nginx
< CF-RAY: 3bd1449d2764410c-HAM
* no chunk, no close, no size. Assume close to signal end
< 
^C
 curl -v -X HEAD http://icecast1.rte.ie/junior               
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the 
Warning: way you want. Consider using -I/--head instead.
*   Trying 89.207.56.171...
* TCP_NODELAY set
* Connected to icecast1.rte.ie (89.207.56.171) port 80 (#0)
> HEAD /junior HTTP/1.1
> Host: icecast1.rte.ie
> User-Agent: curl/7.51.0
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 400 Bad Request
< Server: Icecast 2.4.2
< Date: Mon, 13 Nov 2017 11:07:42 GMT
< Content-Type: text/html; charset=utf-8
< Cache-Control: no-cache
< Expires: Mon, 26 Jul 1997 05:00:00 GMT
< Pragma: no-cache
< 
<html><head><title>Error 400</title></head><body><b>400 - unknown request</b></body></html>
* Curl_http_done: called premature == 0
* Closing connection 0