반응형
기본 반응: 가져오기 요청이 오류와 함께 실패함 - TypeError:네트워크 요청 실패(…)
나는 리액트 네이티브를 이용한 간단한 앱을 개발하고 있어.안드로이드 기기에서 테스트하고 있어.요청을 듣기 위해 Node.js 서버를 만들었고, http:///localhost:333/에서 실행 중이다.다음으로, 나는 index.android.js에서 가져오기 요청을 하고 있다.아래는 암호다.
fetch('http://localhost:3333/',
{
'method': 'GET',
'headers': {
'Accept': 'text/plain',
}
}
)
.then((response) => response.text())
.then((responseText) => {
console.log(responseText);
})
.catch((error) => {
console.warn(error);
});
노드 서버의 요청 핸들러 코드는 다음과 같다.
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(express.static('public'));
app.get('/', function(req, res){
console.log('Request received for /');
res.send("this is the response from the server");
res.end();
});
그러나, 반입 요청이 작동하지 않는다.Chrome 콘솔에 표시되는 오류:TypeError:네트워크 요청 실패(…)
어떻게 하면 이 일을 해낼 수 있을까?
Android 장치에는 자체 IP가 있으므로 URL을 localhost 대신 컴퓨터 IP 주소로 가리켜야 한다.예를 들면fetch('http://192.168.0.2:3333/')
.
Android Debug Bridge 도구(adb)의 역방향 명령 사용:
adb reverse <remote> <local> - reverse socket connections.
reverse specs are one of:
tcp:<port>
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
예를 들면 다음과 같다.
adb reverse tcp:3333 tcp:3333
이렇게 하면 된다.localhost:3333
장치에서 액세스할 수 있음.다른 포트를 사용할 수도 있다.예를 들면 다음과 같다.
adb reverse tcp:8081 tcp:3333
그러면 장치 포트 8081이 로컬 포트 3333으로 리디렉션된다.
반응형
'Programing' 카테고리의 다른 글
ReactRedex - 여러 스토어 인핸서를 생성에 전달하는 중 오류 발생() (0) | 2022.03.09 |
---|---|
다른 포트에서 실행 중인 Vue 애플리케이션에서 노드 익스프레스 서버 API 호출 (0) | 2022.03.09 |
Vue.js 하위 구성 요소에서 모달 닫기 (0) | 2022.03.09 |
바이트를 문자열로 변환 (0) | 2022.03.09 |
판다 멀티 인덱스를 컬럼으로 변환 (0) | 2022.03.09 |