在nodejs中,当我请求假设http或https前缀时,request-promise npm包有什么方法吗?有什么选择吗?例如,当您在 jquery 中编写与“//myawesomewebsite.xom/givemedata”完全一样的 ajax 请求时,jquery 会自行假定前缀 http 或 https 并且 url 变为“ https://myawesomewebsite.xom/givemedata ”或' http://myawesomewebsite.xom/givemedata ' 根据所请求服务器的支持或其他。谢谢 !
问问题
259 次
1 回答
0
当我请求假设 http 或 https 前缀时,请求承诺 npm 包有什么方法吗?有什么选择吗?
不,该功能未内置在 request-promise 中。它期望一个完全限定的 URL 作为目标。在服务器端,没有像浏览器端那样的“默认值”,可能是因为浏览器在提供智能默认值的“页面”上下文中运行,但服务器没有这样的默认上下文。
您可以为 request-promise 实现一个包装器,该包装器查看传入的任何 URL,如果它以 为前缀//
,它会将其更改为您想要的默认协议。然后,您可以改用包装函数。
仅供参考,没有简单的方法可以提前确定目标服务器支持哪种协议。您必须已经知道要使用哪个协议,或者您必须实施一些尝试的方案,https
如果失败,则尝试http
,但这不会像提前知道要使用的适当协议那样好.
于 2018-05-18T17:04:58.033 回答