|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
Есть два приложения на хостинге. Одно "рабочее", другое - "тестовое". В обоих сделал две одинаковые страницы (отличаются только номерами) и одинаковые Application Process (ничем не отличаются). JavaScript на страницах и PL/SQL на сервере - одинаковые. В одном приложении все работает, в другом - нет. Вот работающая страница: http://green.maxapex.ws/apex/f?p=229:7 Вот неработающая: http://green.maxapex.ws/apex/f?p=297:9 У меня были подозрения, что дело в джаваскрипте, но я не уверен. В чем может быть проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2012, 20:27 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
rockclimber, Проблема не в js. В неработающем приложении измените процесс GET_PHONE на такой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Сервер должен вернуть строчку 'IT WORKS'. Таким образом, снимая комментарий с части кода, можно определить, на чем именно валится процедура. Возможно, у схемы в новом приложении нет грантов на табличку. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2012, 22:20 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
haXbatrockclimber, Проблема не в js. В неработающем приложении измените процесс GET_PHONE на такой: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Сервер должен вернуть строчку 'IT WORKS'. Таким образом, снимая комментарий с части кода, можно определить, на чем именно валится процедура. Возможно, у схемы в новом приложении нет грантов на табличку.Там у всех на все гранты есть (скорее всего). Хостинг с минимальным планом, 1 воркспейс, 1 схема, 1 девелопер... Это теоретически. А на практике я в приложении для отладки PL/SQL кода использовал процедуру с двумя параметрами типа varchar2, которая при вызове создает строчку в специальной таблице. Так вот - я вызов этой процедуры вставлял первым в application process, и в таблице с логами не появлялось ничего - то есть applcation process просто не вызывается, похоже. Ваш метод тоже попробовал - с аналогичным результатом... Не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2012, 22:32 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
Я понимаю, что предложение покажется глупым, но попробуйте создать заново эту страницу в приложении 297. У меня не получилось добиться такого эффекта. Попробуйте узнать у хостера, что установлено в качестве "посредника" к БД: EPG+XDB HTTP Server, APEX Listener (сам по себе или на каком-то сервере приложений), OAS + mod_plsql, Apache + mod_owa etc. Может, в логах что-то есть. rockclimberА на практике я в приложении для отладки PL/SQL кода использовал процедуру с двумя параметрами типа varchar2, которая при вызове создает строчку в специальной таблице. Вставка происходит в автономной транзакции? Да, и ещё. Подучите Oracle APEX JavaScript API. Вы всё пишете правильно, но не используете уже имеющиеся функции: $s, $v. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 02:15 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
rockclimber, Версия я так понимаю 4.0 Как уже сказали проблемы на стороне сервера. Проверьте одинаковость названий и свойств процессов, там могут быть, например, непечатуемые символы. Замените весь код на htp.p('IT WORKS!'); ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 10:17 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
rockclimber, Протупил, у вас в первом приложении пользователь аутентифицирован, во втором нет. Требует ли page process аутентификации устанавливается на page zero. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 10:53 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
SvDevrockclimber, Протупил, у вас в первом приложении пользователь аутентифицирован, во втором нет.Не понял эту мысль, если честно. Те, кто с форума заходил по ссылке, они же не аутентифицированы? Или что имеется ввиду? SvDevrockclimber, Требует ли page process аутентификации устанавливается на page zero.А разве не в свойствах процесса? И потом, page zero отсутствует в обоих приложениях. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 13:07 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
SvDevТребует ли page process аутентификации устанавливается на page zero. На On-demand Application Process вообще не действуют ни Authorization, ни Conditions. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 13:22 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
haXbatSvDevТребует ли page process аутентификации устанавливается на page zero. На On-demand Application Process вообще не действуют ... Conditions. Вы ошибаетесь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 15:35 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
rockclimberТе, кто с форума заходил по ссылке, они же не аутентифицированы? Или что имеется ввиду? В одной кнопке вход, в другой выход, я по этому сужу, хотя это не признак. Есть такая схема аутентификации No Authentication (Using DAD). Проверьте не установлена ли она в одном из приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 16:09 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
И еще, посмотрите не прописана ли неработающая страница в свойствах схемы аутентификации как Session Not Valid. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 16:34 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
SvDevrockclimberТе, кто с форума заходил по ссылке, они же не аутентифицированы? Или что имеется ввиду? В одной кнопке вход, в другой выход, я по этому сужу, хотя это не признак. Есть такая схема аутентификации No Authentication (Using DAD). Проверьте не установлена ли она в одном из приложений.Там, где страница не работает - схема кастомная, где работает - одна из стандартных апексовых. А как это влияент на application process? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 18:58 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
Эврика, типа Вооружившись доками по application process и firebug'ом, я обнаружил следущее: когда страница отправляет post-запрос, она отправляет, в частности, два параметра: p_flow_id и p_flow_step_id. Второй из них всегда был равен нулю. SvDev упомянул схемы авторизации. Так как это единственное, чем приложения различались, я начал копать в эту сторону, четких указаний не нашел, но интуиция подсказала, что это "жжжж" - неспроста. Мой JavaScript код был найден на просторах интернета без каких-либо толковых пояснений, что там к чему в нем, так что пришлось заодно найти доку по функции htmldb_get. Я, собственно, поправил всего один параметр. Было: Код: javascript 1.
Стало: Код: javascript 1.
Этого оказалось достаточно, можете сами убедиться ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2012, 22:28 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
haXbat, Я даже засомневался, проверил, покрайней мере в 4.1 для OnDemand работают: 1. conditions 2. authorization 3. authentication rockclimberТам, где страница не работает - схема кастомная, где работает - одна из стандартных апексовых. А как это влияент на application process? Еще раз, 1. Для того чтобы получить доступ к странице со свойством Page Requiriments Authentication нужно быть аутентифицированным. 2. Некоторые схемы аутентификации делают это автоматически (DAD), и могут быть исключения для страниц. (SESSION_NOT_VALID) 3. Это действенно для всех методов POST/GET, в том числе и для аякса, и при запросе Page Zero с Application Process. 4. Если Page Zero не создана, берутся умолчания, т.е. Page Requiriments Authentication. 5. html_GetElement('pFlowId').value возвращает номер тек. страницы. И еще одно интересное наблюдениt: 6. page process можно запрашивать с любой страницы, не только с page zero, достаточно установить request в url: APPLICATION_PROCESS=PROCESS_NAME http://green.maxapex.ws/apex/f?p=297:9:0:APPLICATION_PROCESS=GET_PHONE так что почему аякс неработал и заработал легко объяснимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2012, 15:07 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
SvDev6. page application process можно запрашивать с любой страницы, не только с page zero, достаточно установить request в url апечатка ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2012, 15:28 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
SvDevhaXbat, Я даже засомневался, проверил, покрайней мере в 4.1 для OnDemand работают: 1. conditions 2. authorization 3. authentication Да точно, в 4.0 тоже самое. Но для меня все равно остается загадкой, что же означает Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2012, 09:10 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
haXbat, В 4.1 не вижу таких notes. А вот в документации такое поведение документировано. user guide/About On Demand Application Processesfailures of authentication, authorization, or process conditions do not result in visible error messages or other indicators of such failures and most often result in a blank page being displayed. Note that if you are logged in to Application Builder as a developer, an error messages will display. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2012, 12:20 |
|
AJAX вызов в одном приложении работает, в другом - нет
|
|||
---|---|---|---|
#18+
SvDevВ 4.1 не вижу таких notes. В 4.0 они на вкладках Conditions, Authorization. Видимо тянутся еще с 3х версий, хотя, как оказалось, только вводят в заблуждение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2012, 18:28 |
|
|
start [/forum/topic.php?fid=50&fpage=61&tid=1876177]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 286ms |
total: | 420ms |
0 / 0 |