我正在Windows 10上运行PHP脚本(使用Lumen框架),在['dell', 'co dell', 'co dell']
上侦听请求。
localhost:8090
请求时,它返回我想要的响应。 GET
发送请求时,我收到了所需的响应。curl
。我已经尝试禁用Windows防火墙和Windows 10 Defender,但是并不能解决问题。我尝试在新安装的Windows 10上执行所有这些操作,结果还是一样。
我试图允许防火墙上的端口,但仍然没有帮助。
我也尝试使用Node-Fetch和Axios,但没有帮助。
JavaScript代码:
Error: connect ECONNREFUSED 127.0.0.1:8090
用于运行Lumen应用程序的PHP终端命令:
const axios = require("axios")
console.log("Sending the request...")
axios({
url: 'http://localhost:8090',
})
.then(res => {
console.log("res arrived")
})
.catch(err => {
console.log("err happened", { err })
})
console.log("Request sent")
由于我可以使用Postman和Curl获得响应,因此Lumen应用程序正在运行。只能使用Javascript不能正常工作。
答案 0 :(得分:0)
Axios错误响应:
{ err:
{ Error: connect ECONNREFUSED 127.0.0.1:2233
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1097:14)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 22323,
config:
{ adapter: [Function: httpAdapter],
transformRequest: [Object],
transformResponse: [Object],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers: [Object],
method: 'get',
url: 'http://localhost:22323',
data: undefined },
request:
Writable {
_writableState: [WritableState],
writable: true,
_events: [Object],
_eventsCount: 2,
_maxListeners: undefined,
_options: [Object],
_ended: true,
_ending: true,
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 0,
_requestBodyBuffers: [],
_onNativeResponse: [Function],
_currentRequest: [ClientRequest],
_currentUrl: 'http://localhost:2233/' },
response: undefined } }
答案 1 :(得分:0)
我不确定为什么可以解决此错误,但是请尝试让您的PHP脚本显式侦听127.0.0.1而不是localhost。这解决了您在上面遇到的问题。我的怀疑是,PHP(以及Postman,curl,浏览器等)和JS客户端对“本地主机”一词的解释不同。但是通过明确指定127.0.0.1,就不会产生歧义。
$ php -S 127.0.0.1:8090