Fetch Api:Can not get data from localhost

2020-02-14 06:31发布

问题:

I have been trying to create an android app using nativescript.I am using fetch module to get response from my server.When I am trying to get response from httpbin.org/get ,it is OK.But when I am trying to get response from my local server,I am getting Network Request Failed. error.

Sending to httpbin.org/get-

return fetchModule.fetch("https://httpbin.org/get").then(response => { return response.text(); }).then(function (r) {
        console.log(r);
    }, function (e) {
            console.log(e);
        }); 

Sending to localhost:8000/api-

return fetchModule.fetch("http://localhost:8000/api").then(response => { return response.text(); }).then(function (r) {

       console.log(r);

}, function (e) {

        console.log(e);
    });

When I try to get response from localhost:8000/api in pure node.js via the request module.It worked fine.But now,I don't to know how to solve this in nativescript using fetch module.

回答1:

Instead, localhost (usually 127.0.0.1) use 10.0.2.2 (if using AVD emulator)

10.0.2.2  - Special alias to your host loopback interface 
(i.e., 127.0.0.1 on your development machine)

For GenyMotion emulator the loopback address is 10.0.3.2