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页面不托管在网络服务器上,它只是一个简单的文件,我在浏览器上打开。这可能是它不能正常工作的原因吗?
就我所知,与您的jQuery相关的问题非常容易解决。您的“网址”参数是绝对网址。浏览器安全设置限制使用这样的URL。尝试使用相对URL来获取数据。
如果你的有使用绝对URL,那么让你的服务器从外部URL获取数据,然后以只需要相对URL的方式将其提供给jQuery。
希望有所帮助。
ohh .. default.html是没有真正托管在任何Web服务器上..我刚刚创建了一个文件并放入了一些html代码并在浏览器中打开了它...那是因为我没有托管它...? – pdiddy 2011-06-15 14:36:17
那么,根据您使用的Web服务器以及它的配置方式,只要您只调用文件路径而不使用文件名,就会查找index.html。尝试将文件重命名为'index.html',或者只是在您的URL请求中调用它。 – 2011-06-15 14:41:04
我没有网络服务器。这只是我的桌面上的一个文件,我用浏览器打开了.... – pdiddy 2011-06-15 14:43:39
尝试登录错误:
error: function (e) { alert('failed:'+e); }
,看看到底是怎么回事!并将其返回此处
嗯什么都没有显示出来......弹出窗口不显示... – pdiddy 2011-06-15 14:39:17
如果您发布错误消息 – JAiro 2011-06-15 14:23:32
是否会打开'http:// localhost:62604/default.html'工作?如果是这样,这是一个安全,你需要切换到JSONP才能得到这个工作... – ShaneBlake 2011-06-15 15:07:20