Поэтому я пытаюсь сделать http-звонки из моего ионного приложения другим приложением, работающим на amcat apache, однако я думаю, что из-за проблемы с CORS вызовы не будут успешными. Я следовал инструкциям на этом сайте http://blog.ionic.io/handling-cors-issues-in-ionic/ без везения. Я запускаю приложение Tomcat Apache на http://localhost/platform/ и ионном приложении на localhost: 8100 Я добавил это в свой ionic.project:
{
"name": "mobile",
"app_id": "",
"proxies": [
{
"path": "/platform",
"proxyUrl": "http://localhost/platform/",
}
]
}
Добавил это также к моему gulpfile.js:
gulp.task('install', ['git-check'], function() {
return bower.commands.install()
.on('log', function(data) {
gutil.log('bower', gutil.colors.cyan(data.id), data.message);
});
});
gulp.task('git-check', function(done) {
if (!sh.which('git')) {
console.log(
' ' + gutil.colors.red('Git is not installed.'),
'\n Git, the version control system, is required to download Ionic.',
'\n Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.',
'\n Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.'
);
process.exit(1);
}
done();
});
Я также добавил эту строку в свой app.js:
.constant('appBaseUrl', 'http://localhost:8100/platform')
Это http-адрес, который я делаю:
$http({
method: 'post',
url: appBaseUrl + '/j_spring_security_check',
params: {
'j_username': credentails.username,
'j_password': credentails.password
}
})
Однако консоль не может GET loginsuccess.json, которая является ответом на успешную аутентификацию с сервером backend на tomcat. Вот ответ на консоли http://s16.postimg.org/m2ua3kqc5/console.png
Я провел целый день, пытаясь сделать эту работу без везения. Btw спецификации прокси и proxypass для http://localhost/platform/ определены в файле httpd.conf в папке apache.
Вероятно, это разница в номере вашего порта, и я уверен, что это зависит от браузера и браузера. Текущий браузер, который вы тестируете, может видеть localhost: 80 и localhost: 9000 как два разных домена в отношении CORS. Попробуйте дифференцировать приложения по контексту. Таким образом, браузер точно знает, что все запросы поступают из одного и того же родительского контекста.
Контекст Paren
Контекст ребенка (Ионный)