Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   javascript + web-сервисы (https://javascript.ru/forum/offtopic/33792-javascript-web-servisy.html)

makfromkz 08.12.2012 15:27

javascript + web-сервисы
 
как обратиться на javascript к web-сервису?
Может кто знает ссылки,или раскрытую тему тут, или приведет маленький пример кода для начинающего :)

dmitry111 08.12.2012 15:45

к какому веб сервису?
не понял вопроса

dmitriymar 08.12.2012 15:46

Цитата:

Сообщение от makfromkz
как обратиться на javascript к web-сервису?

прочитать документацию к web-сервису -апи должно быть описано, а апи у каждого сервиса своё. если есть для скрипта то jsonp

DjDiablo 08.12.2012 15:55

О каком сервисе идёт речь SOAP, REST, XML-RPC .... ?

вы сами создате сервис или речь идёи о уже существующем ?

makfromkz 08.12.2012 16:15

Цитата:

Сообщение от dmitriymar (Сообщение 220265)
прочитать документацию к web-сервису -апи должно быть описано, а апи у каждого сервиса своё. если есть для скрипта то jsonp

документация к web-сервису скудна и прочитана толку 0

makfromkz 08.12.2012 16:16

Цитата:

Сообщение от DjDiablo (Сообщение 220268)
О каком сервисе идёт речь SOAP, REST, XML-RPC .... ?

вы сами создате сервис или речь идёи о уже существующем ?

сервис создает программа 1С по технологии SOAP, так в скудной доке описано

makfromkz 08.12.2012 16:18

и сервис представляет собою одну функцию: Hello()

которая должна выдать известную фразу хелло ворлд

DjDiablo 08.12.2012 16:22

повесте взаимодействие по протоколу на какуюнибудь библиотеку вроде http://javascriptsoapclient.codeplex.com/

а сами сосредоточтесь на использовании сервиса

ваш пример будет выглядеть примерно так
function HelloWorld()
{
    var pl = new SOAPClientParameters();
    SOAPClient.invoke(url, "hello", pl, true, HelloWorld_callBack);
}
function HelloWorld_callBack(r)
{
    alert(r);
}

//и где-то когда надо вызвали helloWorld
helloWorld();

Shaci 08.12.2012 18:29

Цитата:

Сообщение от makfromkz (Сообщение 220257)
как обратиться на javascript к web-сервису?
Может кто знает ссылки,или раскрытую тему тут, или приведет маленький пример кода для начинающего :)

пишешь код , например аякс запрос, и все

на примере REST сервиса:

GET /book/ — получить список всех книг
GET /book/3/ — получить книгу номер 3
PUT /book/ — добавить книгу (данные в теле запроса)
POST /book/3 – изменить книгу (данные в теле запроса)
DELETE /book/3 – удалить книгу

DjDiablo 08.12.2012 18:36

в 1с именно SOAP (вот тут немного написано как создаётся сервис)
твой пример это restFull, в 1с запросы PUT и DELETE даже не поддерживается

Shaci 08.12.2012 18:46

Цитата:

Сообщение от DjDiablo (Сообщение 220297)
в 1с именно SOAP
твой пример это restFull, в 1с запросы PUT и DELETE даже не поддерживается

да, вижу, ТС soap нужен, не сразу прочитал

ksa 05.05.2015 13:29

Столкнулся с аналогичным вопросом...
Написали СОАП-сервис. Суть которого тестовая - вернуть дату или время на сервере...
В браузере он нормально отвечает на запрос
http://mcaronov:57772/csp/user/ws.te...hod=wrt&type=1
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<wrtResponse xmlns="http://tempuri.org">
<wrtResult>13:26:31</wrtResult>
</wrtResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

http://mcaronov:57772/csp/user/ws.te...hod=wrt&type=2
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<wrtResponse xmlns="http://tempuri.org">
<wrtResult>05/05/2015</wrtResult>
</wrtResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Но при попытке обратиться к нему, используя JS, получаю в статусе "error"
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('button').click(function(){
		var typ=$(this).data('type');
		$.ajax({ 
			url: 'http://mcaronov:57772/csp/user/ws.test.cls',
			type: "POST",
			dataType: "xml",
			contentType: "text/xml",
			cache: false,
			data: 'soap_method=wrt&type=2',
			success: function(data){ 
				alert(data);
			},
			error: function(XMLHttpRequest, textStatus, errorThrown){
				console.log(XMLHttpRequest);
				alert(textStatus);
				console.log(errorThrown);
			}
		});
	});
});
</script>
</head>
<body>
<button data-type='1'>Посмотреть время</button>
<button data-type='2'>Посмотреть дату</button>
</body>
</html>

Как же правильно получить данные от СОАП-сервиса?


Часовой пояс GMT +3, время: 12:25.