JQuery вызывает мой веб-сервис helloworld - PullRequest
3 голосов
/ 15 июня 2011

Я действительно новичок в этом jquery. У меня работает веб-служба wcf:

[ServiceContract]
public interface IHelloWorldService
{
    [OperationContract]
    [WebInvoke(Method="GET", 
    ResponseFormat = WebMessageFormat.Json, 
    BodyStyle=WebMessageBodyStyle.Wrapped)]
    string SayHello();
}

public class HelloWorlService : IHelloWorldService
{
    public string SayHello()
    {
        return "Hello ";
    }
}

Когда я ввожу http://localhost:62604/HelloWorld.svc/SayHello в Google Chrome, я получаю следующий результат: {"SayHelloResult": "Привет"}

Так что, похоже, работает.

Теперь я создаю default.html, который выглядит следующим образом:

<html>                                                                  
 <head>                                                                  
 <script type="text/javascript" src="jquery.js"></script>          
 <script type="text/javascript">


     function CallService() {
         $.ajax({
             url: "http://localhost:62604/HelloWorld.svc/SayHello",
             type: "GET",
             dataType: "json",
             processdata = false,
             contentType: "application/json; charset=utf-8",
             sucess:function(data) { alert('success'); },
             error: function (e) { alert('failed'); }
         });
     }

     $(document).ready(function () {
         $("a").click(function () {
             CallService();
         });
     });

 </script>                                                               
 </head>                                                                 
 <body>                                                                  
   <a href="">Link</a>                                       
 </body>                                                                 
 </html>

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

Любая помощь приветствуется.

РЕДАКТИРОВАТЬ: страница default.html не размещается на веб-сервере, это просто простой файл, который я открываю в браузере. Может ли это быть причиной того, что это не работает правильно?

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Проблема с вашим jQuery, насколько я могу судить, действительно легко исправить.Ваш параметр "URL" является абсолютным URL.Настройки безопасности браузера ограничивают использование таких URL-адресов.Попробуйте использовать относительный URL-адрес для получения данных.

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

Надеюсь, это поможет.

0 голосов
/ 15 июня 2011

попробуйте зарегистрировать ошибку:

error: function (e) { alert('failed:'+e); }

, чтобы увидеть, что происходит!и выложить его сюда

...