jquery调用我的helloworld web服务

问题描述:

我真的很新的jQuery的东西。我有一个WCF Web服务运行:jquery调用我的helloworld 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页面不托管在网络服务器上,它只是一个简单的文件,我在浏览器上打开。这可能是它不能正常工作的原因吗?

+1

如果您发布错误消息 – JAiro 2011-06-15 14:23:32

+1

是否会打开'http:// localhost:62604/default.html'工作?如果是这样,这是一个安全,你需要切换到JSONP才能得到这个工作... – ShaneBlake 2011-06-15 15:07:20

就我所知,与您的jQuery相关的问题非常容易解决。您的“网址”参数是绝对网址。浏览器安全设置限制使用这样的URL。尝试使用相对URL来获取数据。

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

希望有所帮助。

+0

ohh .. default.html是没有真正托管在任何Web服务器上..我刚刚创建了一个文件并放入了一些html代码并在浏览器中打开了它...那是因为我没有托管它...? – pdiddy 2011-06-15 14:36:17

+0

那么,根据您使用的Web服务器以及它的配置方式,只要您只调用文件路径而不使用文件名,就会查找index.html。尝试将文件重命名为'index.html',或者只是在您的URL请求中调用它。 – 2011-06-15 14:41:04

+0

我没有网络服务器。这只是我的桌面上的一个文件,我用浏览器打开了.... – pdiddy 2011-06-15 14:43:39

尝试登录错误:

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

,看看到底是怎么回事!并将其返回此处

+0

嗯什么都没有显示出来......弹出窗口不显示... – pdiddy 2011-06-15 14:39:17