powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [CSP] Кроссдоменный ajax-запрос
21 сообщений из 21, страница 1 из 1
[CSP] Кроссдоменный ajax-запрос
    #38443012
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел потестить кроссдоменный ajax-запрос... Но примеры этого на ПХП и там используется процедура (или функция)

Код: php
1.
header()


С ее помощью прописываются заголовки ответа сервера...

У нас-то как такое прописать?
Т.е. как прописать заголовки ответа сервера?
----------
Cache for Windows (x86-64) 2012.2.2 (Build 801) Fri Dec 7 2012 12:08:23 EST
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443015
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подправьте заголовок темы А то буквы местами переставил...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443019
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, %response.SetHeader() ?
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443026
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintkrvsa, %response.SetHeader() ?
Сейчас попробую...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443039
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал так...
<script language='cache' runat='server'>
  d %response.SetHeader("Access-Control-Allow-Origin","*")
  d %response.SetHeader("Access-Control-Allow-Methods","GET, PUT, POST, DELETE, OPTIONS")
  d %response.SetHeader("Access-Control-Max-Age","1000")
  d %response.SetHeader("Access-Control-Allow-Headers","Content-Type, Authorization, X-Requested-With")
  s mvrNS=$g(^mvr,"mvr")
  s view=$g(%request.Data("view",1))
  s table=$g(%request.Data("table",1))
  s page=$g(%session.Data(table_view_"Page"))
  &html<#(page)#,>
  d DATA^|mvrNS|mvr.sys.csp.list(view,table)
</script>
На приеме получаю "success"


/* Отправка ajax запроса */
function sendAjax() {
  $('#mvr_create').stop().fadeIn();
  var url='/mvr/ajax/list/data.csp';
  //var url=mvr_urltask+'ajax/list/data.csp';
  var view=$('#mvr_view').val();
  var table=$('#mvr_table').val();
  $.post(
    url,
    {
      view: view,
      table: table
    },
    function (Data,Status) {
      alert(Status)
      answerTest(Data,Status);
    }
  );
  return true;
};
/* Получение ответа от AJAX запроса */
function answerTest(Data,Status) {
  var i=Data.indexOf(',');
  var val=+Data.substring(0,i);
  document.getElementById('mvr_list_control_page').value=val+1; 
  val=Data.substring(i+1,Data.length);
  $('#mvr_list_data').html(val); 
  clearTimeout(mvr_ajax_timer);
  $('#mvr_create').stop().fadeOut();
}
Но ответ пуст!

Все упирается в сессию и область CSP-задач...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443043
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачка /mvr выполняется в одной области, а /soiarh в другой...

Нужно как-то передать имя области на сервер...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443047
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передал и область...
/* Отправка ajax запроса */
function sendAjax() {
  $('#mvr_create').stop().fadeIn();
  var url='/mvr/ajax/list/data.csp';
  //var url=mvr_urltask+'ajax/list/data.csp';
  var view=$('#mvr_view').val();
  var table=$('#mvr_table').val();
  $.post(
    url,
    {
      view: view,
      table: table,
      taskNS: '#($g(%session.Data("taskNS")))#'
    },
    function (Data,Status) {
      alert(Data)
      alert(Status)
      answerTest(Data,Status);
    }
  );
  return true;
};
Сервер ее получил... Но ответ опять пуст...

<script language='cache' runat='server'>
  d %response.SetHeader("Access-Control-Allow-Origin","*")
  d %response.SetHeader("Access-Control-Allow-Methods","GET, PUT, POST, DELETE, OPTIONS")
  d %response.SetHeader("Access-Control-Max-Age","1000")
  d %response.SetHeader("Access-Control-Allow-Headers","Content-Type, Authorization, X-Requested-With")
  s taskNS=$g(%request.Data("taskNS",1))
  zn taskNS
  &html<-#(taskNS)#->
  s mvrNS=$g(^mvr,"mvr")
  s view=$g(%request.Data("view",1))
  s table=$g(%request.Data("table",1))
  s page=$g(%session.Data(table_view_"Page"))
  &html<#(page)#,>
  d DATA^|mvrNS|mvr.sys.csp.list(view,table)
</script>
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443053
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все уперлость в сессию...

У меня вся информация по областям в ней, а при кроссдоменном обращении сессия "не передается"...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443074
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaВсе уперлость в сессию...

У меня вся информация по областям в ней, а при кроссдоменном обращении сессия "не передается"...
а зачем передавать сессию, запрос кросс-доменный предполагает обращения между совершенно разными приложениями.
и в каждом это должны быть разные сессии
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443076
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, ведь все это происходит на одном и том же сервере? %CSP.Session - хранимый класс, можно открыть его объект, получить доступ к данным...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443078
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался и с областями...
Но все равно получаю

Код: vbnet
1.
ERROR #6023: Query not Prepared



Хотя sql-запрос запрос нормальный и выполняется в нужной области...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443080
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintkrvsa, ведь все это происходит на одном и том же сервере?
Да.

doublefint%CSP.Session - хранимый класс, можно открыть его объект, получить доступ к данным...
Да я даже параметрами все передал...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443081
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaХотя sql-запрос запрос нормальный и выполняется в нужной области...
Выяснил, что эт не так... Запрос пока не такой, какой надо.
Буду смотреть что мешает его формированию...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443096
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неее... Не получится у меня кроссдоменности.
Сессии разные, а в них все ключевые данные...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443505
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в одной областиClass test.page Extends %CSP.Page {

ClassMethod OnPage() As %Status
{
    #dim %session as %CSP.Session
    s ssid = %session.SessionId
    s %session.Data("something")="wrong"
    
    &html<<!doctype html><html><head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type='text/javascript'>
   $(function(){
       
    $.ajax( { url: '#(..Link("/user/test.data.cls"))#'
        , data: { 'ssid': '#(ssid)#' }
    }).done( function( data ){
        $( data ).appendTo( $("body") );
    });
        
   })
   </script></head>
    <body></body></html>>
    Quit $$$OK
}

}
В другой областиClass test.data Extends %CSP.Page
{

ClassMethod OnPage() As %Status
{
    s ssid=$g(%request.Data("ssid",1))
    #dim session as %CSP.Session
    s session = ##class(%CSP.Session).%OpenId( ssid,,.sc )
    if sc && $IsObject(session) {
        m data = session.Data    
        w "<pre>"
        zw data
        w "</pre>"
    } else {
        w $classname()    
    }
    
    Quit $$$OK
}

}
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443564
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint , спасибо за информацию.

Но в моем случае "быть на одном сервере" это лишь частный случай... Да и не стоит оно того...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38443594
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и такой номер прокатит только если сессии не хранимые (Preserve=0), иначе открыть сессию не получится
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38444044
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor только если сессии не хранимые (Preserve=0), иначе открыть сессию не получится

В одной областиClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
    s %session.Preserve=1
    Q 1
}
В другой области
...
 s nolock=0, session = ##class(%CSP.Session).GetSession( ssid, "", nolock, "" )
...
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38444048
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintDAiMor только если сессии не хранимые (Preserve=0), иначе открыть сессию не получится

В одной областиClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ]
{
    s %session.Preserve=1
    Q 1
}
В другой области
...
 s nolock=0, session = ##class(%CSP.Session).GetSession( ssid, "", nolock, "" )
...
Ну если так, то конечно
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38444050
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa"быть на одном сервере" это лишь частный случай. В сессии мало магии - это хранимый класс с нестандартной схемой хранения( т.е в глобале ). Общий случай - доступ с одного сервера к глобали на другом сервере?
...
Рейтинг: 0 / 0
[CSP] Кроссдоменный ajax-запрос
    #38444162
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint , оно не стоит того...
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [CSP] Кроссдоменный ajax-запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]