Programing

기본 반응: 가져오기 요청이 오류와 함께 실패함 - TypeError:

c10106 2022. 3. 9. 09:50
반응형

기본 반응: 가져오기 요청이 오류와 함께 실패함 - 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으로 리디렉션된다.

참조URL: https://stackoverflow.com/questions/33969333/react-native-fetch-request-failed-with-error-typeerror-network-request-faile

반응형