Здравствуйте, Neco, Вы писали:
N>SOAP ромадить не обязательно — можно просто сформировать http POST запрос, к примеру такой как я привёл. И в asp и в js это (я уверен) возможно довольно просто. Создаётся какой-то объект через CreateObject (не помню точно, но в названии присутствовали http и request), и выполняется какой-то из его методов.
N>вот для примера кусок axd, в котором вызывается веб-метод
N>N> catch(e) {
N> try {
N> xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
N> }
N> catch(e) {
N> }
N> }
N> var setRequestHeaderMethodExists = true;
N> try {
N> setRequestHeaderMethodExists = (xmlRequest && xmlRequest.setRequestHeader);
N> }
N> catch(e) {}
N> var callback = new Object();
N> callback.eventCallback = eventCallback;
N> callback.context = context;
N> callback.errorCallback = errorCallback;
N> callback.async = useAsync;
N> var callbackIndex = WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback);
N> if (!useAsync) {
N> if (__synchronousCallBackIndex != -1) {
N> __pendingCallbacks[__synchronousCallBackIndex] = null;
N> }
N> __synchronousCallBackIndex = callbackIndex;
N> }
N> if (setRequestHeaderMethodExists) {
N> xmlRequest.onreadystatechange = WebForm_CallbackComplete;
N> callback.xmlRequest = xmlRequest;
N> xmlRequest.open("POST", theForm.action, true);
N> xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
N> xmlRequest.send(postData);
N> return;
N> }
N> callback.xmlRequest = new Object();
N> var callbackFrameID = "__CALLBACKFRAME" + callbackIndex;
N> var xmlRequestFrame = document.frames[callbackFrameID];
N> if (!xmlRequestFrame) {
N> xmlRequestFrame = document.createElement("IFRAME");
N> xmlRequestFrame.width = "1";
N> xmlRequestFrame.height = "1";
N> xmlRequestFrame.frameBorder = "0";
N> xmlRequestFrame.id = callbackFrameID;
N> xmlRequestFrame.name = callbackFrameID;
N> xmlRequestFrame.style.position = "absolute";
N> xmlRequestFrame.style.top = "-100px"
N> xmlRequestFrame.style.left = "-100px";
N> try {
N> if (callBackFrameUrl) {
N> xmlRequestFrame.src = callBackFrameUrl;
N> }
N> }
N> catch(e) {}
N> document.body.appendChild(xmlRequestFrame);
N>
N>как видишь, создаётся объект Microsoft.XMLHTTP. Не знаю, откуда у линуксовой мозиллы Microsoft.XMLHTTP, но наверное там это делается как-то по-другому. Вполне возможно, что у asp есть и собственные — более "нормальные" методы POST запроса.
Можно смело считать проблемой опытных пользователей — это проблема донести до неопытных свои знания в таком виде, чтобы тот их понял с первого раза. Где коменты? Из того кода, непоняток для меня куча, вследствии плохого знания JavaScript о чём я уже упоминал.
Вы писали: "И в asp и в js это (я уверен) возможно довольно просто. Создаётся какой-то объект через CreateObject (не помню точно, но в названии присутствовали http и request), и выполняется какой-то из его методов." Такой текст не несёт никакой полезной информации и считать его ответом ну никак нельзя. Я же нуб и что мне от того что это делается довольно прост и с помощью вызова какого-то метода. Мне нужен как нубу текст с поробнывми коментами по коду, где можно було бы увидеть логику всего процесса вызова веб метода и с помощью коментов увидеть как это делаетсяконкретно, вот тогда это можно сичтать полноценным отаветом и за это раздовать благодарности авторам. По коду у меня возниколо масса вопросов... для чего создаётся объект callback, что такое переменная useAsync, errorCallback, eventCallback. Что делает ф-ция WebForm_FillFirstAvailableSlot(__pendingCallbacks, callback), что такое WebForm_CallbackComplete, что такое postData и откуда она вообще в методе send? Зчем содаётся фрэйм на форме? И что такое callBackFrameUrl? Что делается вот сдесь — document.body.appendChild(xmlRequestFrame); Как видите мне непонятен весь текст почти, кроме того, что создали шаблоны HTTP POST запросов в самом начале. Огромнейшая просьбы пишите и раскрывайте проблему от и до исходя из того принципа, что те кто будет это читать чайники с нулевыми знаниями, тогда ваши статьи и книги будут пользоваться спросом. Огромная просьба написать грамотные коменты для каждой строки кода. буду очень благодарен, да и наверно не только я но и все читающие тему.