powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Обращение к ASP.NET сервису из Windows Sidebar Gadget
20 сообщений из 20, страница 1 из 1
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968734
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оформил тестовый пример:
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968738
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<html>
<head>
    <meta charset="utf-8">
    <script type="text/javascript">
        var requestBody =
                '<?xml version="1.0" encoding="utf-8"?>' +
                '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
                '<soap:Body>' +
                '<Get xmlns="http://tempuri.org/">' +
                '<UserRequest Login="test" Password="test"></UserRequest>' +
                '</Get>' +
                '</soap:Body>' +
                '</soap:Envelope>',
            requestUri = 'http://localhost:88/User.asmx';

        function doCallOtherDomain() {
            var XHR = window.XDomainRequest || window.XMLHttpRequest,
                xhr = new XHR();

            xhr.open('POST', requestUri, true);
            xhr.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');

            // замена onreadystatechange
            xhr.onload = function () {
                document.getElementById('response').innerHTML = xhr.responseText
            };
            xhr.onerror = function () {
                alert("Error")
            };
            xhr.send(requestBody)
        }

        function callOtherDomain() {
            try {
                doCallOtherDomain()
            } catch (e) {
                alert("В этом браузере данная фича не поддерживается.")
            }
        }
    </script>
</head>
<body>
<div id="response"></div>
<input type="button" value="Нажмите для запроса к другому домену" onclick="callOtherDomain()"/>
</body>
</html>


Сервис в ответ добавляет следующий заголовок:
Код: c#
1.
Context.Response.Headers.Add( "Access-Control-Allow-Origin", "*" );


В итоге получаю сообщение "Error" :)
Кто-нибудь может подсказать как грамотно обратится из гаджета к ASP.NET сервису?
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968745
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fiddler2 показывает, что вместо POST запроса отсылается сл. запрос без тела:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
OPTIONS http://localhost:88/User.asmx HTTP/1.1
Host: localhost:88
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: null
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Access-Control-Request-Headers: origin, content-type
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

и приходит ответ:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
HTTP/1.1 200 OK
Allow: OPTIONS, TRACE, GET, HEAD, POST
Server: Microsoft-IIS/7.5
Public: OPTIONS, TRACE, GET, HEAD, POST
X-Powered-By: ASP.NET
Date: Sun, 23 Sep 2012 11:01:45 GMT
Content-Length: 0
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968755
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял так как у меня Content-Type: "text/xml; charset=utf-8", то сначала выполняется так называемый preflight request и, судя по ответу, сервер разрешает выполнить POST, но вот толко последний не выполняется, в чём проблема?
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968766
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если дернуть через сервис референс с .нет клиента, работает?
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968771
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, с .net клиента через референс не дёргал, работает через HttpWebRequest:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var requestBody =
    "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
    "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
                    " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
    "<soap:Body>" +
    "<Get xmlns=\"http://tempuri.org/\">" +
    "<UserRequest Login=\"test\" Password=\"test\"></UserRequest>" +
    "</Get>" +
    "</soap:Body>" +
    "</soap:Envelope>";
var requestUri = "http://localhost:88/User.asmx";
var request = (HttpWebRequest)HttpWebRequest.Create( requestUri );

request.ContentType = "text/xml; charset=utf-8";
request.Method = "POST";
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968773
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже лучше. Теперь нужно выкинуть на свалку js-вызов xmlhttprequest и заюзать человеческий jquery и его ajax или post методы.
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968780
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУУже лучше. Теперь нужно выкинуть на свалку js-вызов xmlhttprequest и заюзать человеческий jquery и его ajax или post методы.Таже фигня:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var requestBody =
        '<?xml version="1.0" encoding="utf-8"?>' +
        '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
        '<soap:Body>' +
        '<Get xmlns="http://tempuri.org/">' +
        '<UserRequest Login="test" Password="test"></UserRequest>' +
        '</Get>' +
        '</soap:Body>' +
        '</soap:Envelope>',
    requestUri = 'http://localhost:88/User.asmx';

$.ajax({ contentType: 'text/xml; charset=utf-8', data: requestBody, dataType: 'xml', type: 'POST', url: requestUri, error: onError, success: onSuccess });


Аюсолютно такие же request и response в фидлере :)
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968781
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, поехал я фубол смотреть, будут у кого какие идеи - пишите. Заранее спасибо :)
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968782
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, та же фигня - это работает или не работает? :)
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968785
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, ну только посмотрите на него, он видите ли на футболе, а мы тут сиди и думал, что там не так с хедерами.
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968787
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANA, та же фигня - это работает или не работает? :)Также не работает, попадает в onError.
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968788
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе, ну только посмотрите на него, он видите ли на футболе, а мы тут сиди и думал, что там не так с хедерами.Дак Серж же хотел задачку :)
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968793
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУНе, ну только посмотрите на него, он видите ли на футболе, а мы тут сиди и думал, что там не так с хедерами.Дак Серж же хотел задачку :)
Серж пусть буквари лучше читает, а не на форуме ответы программистам пишет ;)
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968796
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМСУskyANA, та же фигня - это работает или не работает? :)Также не работает, попадает в onError.
Не правильно вызываешь. В data не нужно пихать весь реквест. Погугли, как правильно в ajax пропихнуть хедер. Я пока не у компа, лениво серфить.
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968821
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер должен разрешить использовние POST запроса и использование заголовка Content-type -

Код: plaintext
1.
2.
3.
4.
5.
<%
        Response.Headers.Add("Access-Control-Allow-Origin", "*");
        Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
        Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type");
%>
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37968822
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st_stСервер должен разрешить использовние POST запроса и использование заголовка Content-type -

Код: plaintext
1.
2.
3.
4.
5.
<%
        Response.Headers.Add("Access-Control-Allow-Origin", "*");
        Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
        Response.Headers.Add("Access-Control-Allow-Headers", "Content-Type");
%>


В веб конфиге задается.
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #37970627
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прописал заголовки в веб конфиге, плюс оказалось, чтобы работало в windows gadget, необходимо установить следуюшее свойство:
Код: javascript
1.
$.support.cors = true;


В итоге рабочий вариант:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function doRequest() {
    var requestBody =
            '<?xml version="1.0" encoding="utf-8"?>' +
            '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
            '<soap:Body>' +
            '<Get xmlns="http://tempuri.org/">' +
            '<UserRequest Login="test" Password="test"></UserRequest>' +
            '</Get>' +
            '</soap:Body>' +
            '</soap:Envelope>',
        requestUri = 'http://localhost:88/User.asmx';

    $.support.cors = true;
    $.ajax({ contentType: 'text/xml; charset=utf-8', data: requestBody, dataType: 'xml', type: 'POST', url: requestUri, error: onError, success: onSuccess });
}


st_st и МСУ, спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #39167677
Santa89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Долго мучился почему гаджет не показывает результат.
$.support.cors = true помог, огромное спасибо!
...
Рейтинг: 0 / 0
Обращение к ASP.NET сервису из Windows Sidebar Gadget
    #39168135
Santa89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

вопрос такой: в случае если гаджет вызывает веб-сервис, например каждую минуту - то в случае блокировки экрана юзера будет ли гаджет также вызывать веб-сервис каждую минуту?
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Обращение к ASP.NET сервису из Windows Sidebar Gadget
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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