When using ionic emulate ios I can easily make an http request with code:
$http.get(‘https:/example.com/…’);
But when I emulate ios with live reload enabled, all http requests error with a response of null. I have looked online for similar issues but I can’t seem to easily find the issue.
Does anyone know why live reload is not able to make requests that work seamlessly when not using live reload?
Ionic cli is up to date with ionic 1.2.4 installed in the project.
haha @Gajotres I was just coming back to say that I had solved the problem and it was through the means which you just recommended. Which I would have know about that tool earlier.
Thanks @Sujan12, your recommendation to look at the logs encouraged me to start my search to find the debugger myself which @Gajotres recommended.
So as @Gajotres suggested the emulator was throwing errors but these were not being shown by the console output of livereload. After opening the safari debugger I quickly realized that this was a simple cors issue on my node server. I had already added localhost:8100 to accept ionic requests, but through the magic of live reload, requests from the emulator do not appear to come from localhost but from your local ip address. To allow for all local ionic requests sent to your server locally simply add the following:
// Assuming that you are running a node express server, adding this to your config
// get local ip
require(‘dns’).lookup(require(‘os’).hostname(), function (err, addr, fam) {
process.env.localIp = addr;
});
// Add this to your routes
// dynamically allow cors from all local ionic servers
var cors = {
origin: [“http://”+process.env.localIp+":8100"],
default: “http://localhost:8100”
};
var origin = (cors.origin.indexOf(req.headers.origin) > -1) ? req.headers.origin : cors.default;
res.header(“Access-Control-Allow-Origin”, origin);