我对这个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页面不托管在网络服务器上,它只是我在浏览器上打开的一个简单文件。这可能是它无法正常工作的原因吗?
答案 0 :(得分:1)
据我所知,你的jQuery问题非常简单。您的“URL”参数是绝对URL。浏览器安全设置限制使用此类URL。尝试使用相对URL来获取数据。
如果 使用绝对URL,那么让服务器从外部URL获取数据,然后以只需要相对URL的方式将其提供给jQuery。
希望有所帮助。
答案 1 :(得分:0)
尝试记录错误:
error: function (e) { alert('failed:'+e); }
看看发生了什么!并将其发回此处