Проблема совместного использования ресурсов в приложении Ionic

0

Поэтому я пытаюсь сделать 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.

  • 0
    вы можете попробовать поставить 127.0.0.1 вместо localhost?
  • 0
    Где я должен попробовать это? для всех localhost? или appBaseUrl? или для proxyUrl?
Показать ещё 3 комментария
Теги:
ionic-framework
tomcat

1 ответ

0

Вероятно, это разница в номере вашего порта, и я уверен, что это зависит от браузера и браузера. Текущий браузер, который вы тестируете, может видеть localhost: 80 и localhost: 9000 как два разных домена в отношении CORS. Попробуйте дифференцировать приложения по контексту. Таким образом, браузер точно знает, что все запросы поступают из одного и того же родительского контекста.

Контекст Paren

HTTP://локальный/Платформа/

Контекст ребенка (Ионный)

HTTP://локальный/платформа/ионную

Ещё вопросы

Сообщество Overcoder
Наверх
Меню