Node.js 请求函数给 url 添加斜杠

马克·斯洛斯·伊士曼

我正在尝试使用 node.js 调用https://api.umd.io/v0/courses?dept_id=math但是当我像这样调用请求函数时:

var request = require('request');
request('http://api.umd.io/v0/courses?dept_id=math', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
...

添加了一个斜杠,使请求转到https://api.umd.io/v0/courses?dept_id=math/返回空。有没有办法不添加斜线?谢谢!

jfriend00

主机站点似乎有一些错误。有两种方法可以解决这些问题,但是如果主机站点是您的代码,那么您应该只修复服务器代码中的那些错误。

  1. 如果您切换到https,则它有效。我注意到了这一点,因为如果您进入http://api.umd.io/v0/courses?dept_id=math浏览器,它会重定向到https://api.umd.io/v0/courses?dept_id=math并正常工作。查看浏览器的网络选项卡,有一个 307 响应,重定向到 URL 的 https 版本。node.js 也获得了重定向,但与浏览器不同(更多内容见下文)。因此,切换到https避免了将 加到/URL 末尾的错误重定向这可能是一种安全的解决方法。

  2. 如果&在 URL 末尾添加,则 URL 的常规http版本将起作用。这清楚地表明是某种服务器 URL 解析错误导致了问题。这可能不是一个特别安全的解决方法,因为重定向的 URL 起作用有点意外(请参阅下面的讨论)。


当我在我自己的 node.js 应用程序中做进一步调查时,我发现如果你设置了request()option followRedirect: false,那么你可以确切地看到正在发生的重定向。在这种情况下,它会为您提供 301 重定向,https://api.umd.io/v0/courses?dept_id=math/并以斜杠结尾。这只是一个普通的服务器错误。您必须在服务器中修复此问题或使用上述解决方法之一。

所有这些都在一个简单的 node.js 测试应用程序中得到了验证。对于重定向,服务器似乎以某种方式检测到它是浏览器并发送重定向(如果它是浏览器),但不在您的 node.js 代码中。我查看了浏览器,只有四个标头与请求一起发送:

DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id: CD54EC492DF97F6357AFC5465E6D6D0C

出于某些原因,我不了解浏览器,获得了https://api.umd.io/v0/courses?dept_id=math一个正确的 URL的 307 重定向我不知道为什么 node.js 将 301 重定向到错误的 URL,而浏览器将 307 重定向到正确的 URL。我尝试模拟浏览器发送的所有标头,但仍然将 301 指向错误的 URL。


无论如何,您有两种可能的解决方法可以在 node.js 中工作。有趣的是,添加&到末尾仍然会重定向到/添加到末尾,如下所示:

https://api.umd.io/v0/courses?dept_id=math&/

但使用该重定向 URL 确实有效,可能是因为&触发了 URL 解析,将它/放入URL 的另一个 xxx=yy 段中,将它与该dept_id=math分开,这样它就不会弄乱那个段。这表明添加&只是一个 hack,导致服务器错误在某种程度上意外工作。我不会认为它是一种可靠的解决方法,将来可能不会意外中断。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

node.js请求模块,如何使用步骤将请求的URL主体传递给下一个函数

来自分类Dev

Django URL-斜杠添加到变量值

来自分类Dev

Python:添加结尾斜杠时出现URL解析问题

来自分类Dev

.htaccess在请求的文件中添加斜杠

来自分类Dev

node.js请求处理程序不会调用函数

来自分类Dev

重写url以删除问号并在htaccess中添加斜杠

来自分类Dev

在路径URL后面添加斜杠时未加载CSS文件

来自分类Dev

在Node.js中发出请求时提示要使用的URL

来自分类Dev

通过node.js使用Mailgun发送邮件-找不到请求的URL

来自分类Dev

如何在node.js中返回与URL请求相对应的XML文件?

来自分类Dev

Node.js Mysql插入向字符串添加反斜杠,但失败

来自分类Dev

如何使用htaccess在URL末尾添加斜杠?

来自分类Dev

是否存在在CRA中URL末尾添加斜杠的设置?

来自分类Dev

Node.js Lambda请求函数获取411长度要求

来自分类Dev

如何使用Node.js在URL中添加我的Web应用程序名称?

来自分类Dev

无法在Node.js中为URL.createObjectURL添加polyfill

来自分类Dev

Node.js通过选项(http或https)直接请求URL

来自分类Dev

如何在Node.js中生成对产品广告API URL的签名请求

来自分类Dev

在node.js中捕获请求的URL

来自分类Dev

NODE JS取消请求

来自分类Dev

根据请求的URL中的斜杠重写URL

来自分类Dev

迭代node.js请求函数

来自分类Dev

如何使用请求模块 -Node js 提取来自 url 的请求的域名

来自分类Dev

Node js,函数执行

来自分类Dev

Node.js 请求函数返回数据

来自分类Dev

Node.JS HTTP 请求 - 分离回调函数

来自分类Dev

Apostrophecms:如何通过斜杠在 url 中添加 url 参数

来自分类Dev

Node.js - 获取请求访问的客户端的域/url

来自分类Dev

如何添加包含斜杠的动态 URL 部分

Related 相关文章

  1. 1

    node.js请求模块,如何使用步骤将请求的URL主体传递给下一个函数

  2. 2

    Django URL-斜杠添加到变量值

  3. 3

    Python:添加结尾斜杠时出现URL解析问题

  4. 4

    .htaccess在请求的文件中添加斜杠

  5. 5

    node.js请求处理程序不会调用函数

  6. 6

    重写url以删除问号并在htaccess中添加斜杠

  7. 7

    在路径URL后面添加斜杠时未加载CSS文件

  8. 8

    在Node.js中发出请求时提示要使用的URL

  9. 9

    通过node.js使用Mailgun发送邮件-找不到请求的URL

  10. 10

    如何在node.js中返回与URL请求相对应的XML文件?

  11. 11

    Node.js Mysql插入向字符串添加反斜杠,但失败

  12. 12

    如何使用htaccess在URL末尾添加斜杠?

  13. 13

    是否存在在CRA中URL末尾添加斜杠的设置?

  14. 14

    Node.js Lambda请求函数获取411长度要求

  15. 15

    如何使用Node.js在URL中添加我的Web应用程序名称?

  16. 16

    无法在Node.js中为URL.createObjectURL添加polyfill

  17. 17

    Node.js通过选项(http或https)直接请求URL

  18. 18

    如何在Node.js中生成对产品广告API URL的签名请求

  19. 19

    在node.js中捕获请求的URL

  20. 20

    NODE JS取消请求

  21. 21

    根据请求的URL中的斜杠重写URL

  22. 22

    迭代node.js请求函数

  23. 23

    如何使用请求模块 -Node js 提取来自 url 的请求的域名

  24. 24

    Node js,函数执行

  25. 25

    Node.js 请求函数返回数据

  26. 26

    Node.JS HTTP 请求 - 分离回调函数

  27. 27

    Apostrophecms:如何通过斜杠在 url 中添加 url 参数

  28. 28

    Node.js - 获取请求访问的客户端的域/url

  29. 29

    如何添加包含斜杠的动态 URL 部分

热门标签

归档