国内 aws 机器。 原本是 python 代码,对 jina.ai 的 embedding API 接口发 reques 请求,请求是可以成功的。 但是换成 nodejs 后,用 fetch 或 axios 请求,总会 connect timeout 。
找不到解决办法,特来求助大佬们,谢谢
1
langhuishan 15 小时 22 分钟前
跨域了
|
2
importmeta 15 小时 18 分钟前
用 trycatch 包裹 axios 请求 打印出 error
|
3
rizon OP @langhuishan 后端 nodejs 请求,没有跨域一说
|
4
rizon OP @importmeta #2
Error: connect ETIMEDOUT xxxxx.xxx:443 at createConnectionError (node:net:1648:14) at Timeout.internalConnectMultipleTimeout (node:net:1707:38) at listOnTimeout (node:internal/timers:583:11) at process.processTimers (node:internal/timers:519:7) { errno: -110, code: 'ETIMEDOUT', syscall: 'connect', address: 'xxx.xxx.xx', port: 443 |
5
rizon OP 真的太诡异了,到底是哪里问题啊,python 请求百分百成功,一换 nodejs 就超时。。。。
|
6
liyang582 14 小时 23 分钟前
盲猜是 proxy 的问题,你搜一下 axios 或者 fetch 的 proxy 相关设置,把你的本地的 proxy 配置手动配置一下。
|
7
jiangzm 14 小时 19 分钟前
在服务器上使用 curl 请求看看, 排除下是不是本地根证书问题
|
8
rizon OP |
9
liyang582 14 小时 7 分钟前
|
10
htf176 13 小时 46 分钟前 via iPhone
可能是 node 版本问题,构建时使用的 ssl 库版本过低,使用高版本 node 试试
|
11
rizon OP |
13
importmeta 13 小时 26 分钟前
你这个数组放哪传的,URL 参数还是 Body 还是用 multipart/form-data, 其他我就不知道了.
|
14
xiaoming1992 13 小时 21 分钟前 via Android 1
试试在 header 里添加 content-type (如果本来显式声明了的话就移除)
|
15
humbass 13 小时 14 分钟前 via Android
换语言大概率是发的东西不一样
|
16
rizon OP @xiaoming1992 删除掉 content type 可以了!!!真的是这个问题!!!感谢!!!
而且你这么一说就提醒我了,过去我也遇到过类似的问题,也是因为多写了 content type 导致的,这会没想起来这事。 但是我不知道为什么会有这个问题。。。。 |
18
xiaoming1992 13 小时 3 分钟前 via Android
@rizon #16 以下内容我也不太确定,你参考一下吧。
前端使用 fetch 时浏览器会自动帮你加 content-type ,这时候不能显式设置 content-type 。 后端 node 的 fetch 貌似不会帮你加,所以需要你显式加。python 可以估计是 py 的请求包会自动帮你加。至于偶尔能成功一次,可能是你换了其他的请求库? |
19
krapnik 12 小时 36 分钟前
你需要的是这个: https://curlconverter.com/
|
20
rizon OP @xiaoming1992 #18 哎,错觉啊,没解决,,就偶发好了一下下,刚才一试又不行了。。。
|
21
xiaoming1992 11 小时 30 分钟前 via Android
🤣
|
22
rizon OP 问题最后找到了,确实是系统环境变量导致的,我在 docker 里启动就没问题。
但我不知道是哪个环境变量影响的。也不知道本地调试时该如何避免变量影响。 |
23
ragnaroks 11 小时 20 分钟前
设置 useragent 为浏览器的值试试( navigator.userAgent )
|
24
chenliang0571 10 小时 46 分钟前
@rizon process.env 看过了吗?有没有相关的?
|
25
wangtian2020 3 小时 31 分钟前
像是 DNS 问题啊
|