Может ли AJAX вызывать внешние функции веб-сервисов? - PullRequest
1 голос
/ 23 декабря 2009
    <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="WebService.asmx" />
            </Services>
   </asp:ScriptManager> 
   <script type="text/javascript">
            WebService.GetUpdate("hhh",OnComplete, OnTimeout, OnError);
    </script>

этот код работает нормально, но когда я изменяю путь к внешнему веб-сервису, он выдает ошибку, имя класса не определено. кто-нибудь может мне помочь, спасибо измененный

   <asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="http://mysite/WebService.asmx" />
            </Services>
   </asp:ScriptManager> 
   <script type="text/javascript">
            WebService.GetUpdate("hhh",OnComplete, OnTimeout, OnError);
    </script>

Ответы [ 5 ]

2 голосов
/ 23 декабря 2009

Вместо того чтобы использовать Javascript для выполнения междоменных вызовов, если вы можете изменить реализацию веб-службы, вы можете совершать междоменные вызовы в веб-службе, а затем получать результат от своего клиента.

Насколько я знаю, в Javascript некоторые библиотеки Javascript (например, dojo) поддерживают это. Ниже приведен пример кода.

var callee = dojox.io.windowName.send("GET", {url:"http://xyz.com/data"});
callee.addCallback(function(data){
  console.log(data);
});
0 голосов
/ 23 декабря 2009

используя локальный веб-сервис для вызова внешних веб-сервисов, а затем используйте javascript для вызова локальной функции, тогда проблема решена

0 голосов
/ 23 декабря 2009

Вы пытаетесь совершить междоменный вызов: вы не можете выполнять вызовы XMLHttpRequest из одного домена в другой.

0 голосов
/ 23 декабря 2009

Выполните вызов на локальный сервер, и пусть сервер сделает вызов на внешний веб-сервис. Это разрешено.

0 голосов
/ 23 декабря 2009

Вы можете ссылаться только на веб-службу в том же домене, используя ServiceReference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...