jquery调用我的helloworld Web服务

时间:2011-06-15 14:20:13

标签: jquery .net wcf web-services

我对这个jquery的东西真的很陌生。我有一个运行wcf的web服务:

[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输入谷歌浏览器时,我得到以下结果: {“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 个答案:

答案 0 :(得分:1)

据我所知,你的jQuery问题非常简单。您的“URL”参数是绝对URL。浏览器安全设置限制使用此类URL。尝试使用相对URL来获取数据。

如果 使用绝对URL,那么让服务器从外部URL获取数据,然后以只需要相对URL的方式将其提供给jQuery。

希望有所帮助。

答案 1 :(得分:0)

尝试记录错误:

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

看看发生了什么!并将其发回此处