jquery调用我的helloworld web服务
我对jquery这个东西真的很陌生。我有一个wcf web服务正在运行:jquery调用我的helloworld web服务,jquery,.net,wcf,web-services,Jquery,.net,Wcf,Web Services,我对jquery这个东西真的很陌生。我有一个wcf web服务正在运行: [ServiceContract] public interface IHelloWorldService { [OperationContract] [WebInvoke(Method="GET", ResponseFormat = WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Wrapped)] string Say
[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 ";
}
}
当我进入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>
函数CallService(){
$.ajax({
url:“http://localhost:62604/HelloWorld.svc/SayHello",
键入:“获取”,
数据类型:“json”,
processdata=false,
contentType:“应用程序/json;字符集=utf-8”,
suces:function(data){alert('success');},
错误:函数(e){alert('failed');}
});
}
$(文档).ready(函数(){
$(“a”)。单击(函数(){
CallService();
});
});
所以很简单的事情。。。但它不起作用。。。我总是收到警报失败消息。。。。
我有点迷路了,不知道怎么了
感谢您的帮助
编辑:default.html页面不在Web服务器上托管,它只是我在浏览器上打开的一个简单文件。这可能是它无法正常工作的原因吗?尝试记录错误:
error: function (e) { alert('failed:'+e); }
看看发生了什么!把它发回到这里据我所知,jQuery的问题很容易解决。您的“URL”参数是一个绝对URL。浏览器安全设置会限制URL的使用,如下所示。尝试使用相对URL获取数据 如果必须使用绝对URL,那么让服务器从外部URL获取数据,然后以只需要相对URL的方式将其提供给jQuery
希望对您有所帮助。如果您发布错误消息does opening
http://localhost:62604/default.html
工作?如果是这样的话,这是一种安全性,您需要切换到JSONP以使其正常工作…哦。。default.html实际上并不托管在任何web服务器上。。我刚刚创建了一个文件,放了一些html代码并在浏览器中打开了它。。。这是因为我没有托管它吗…?嗯,根据您使用的Web服务器以及它的配置方式,只要您只调用文件路径,而不调用文件名,就会查找index.html
。尝试将文件重命名为index.html
,或者在URL请求中调用它。我没有web服务器。这只是我桌面上的一个文件,我用浏览器打开它……您在上面的示例代码中请求的文件显示它是从您计算机上的服务器调用的。苏。。。您是否真的从桌面请求文件?好的。我想我在阅读你之前的评论时有一个误解。很抱歉。:)我认为这是三个问题中的一个造成的:1)您的地址可能不正确2)您使用的是绝对URL,这仍然是出于安全考虑而被阻止的,因此尝试使用相对URL 3)这不在web服务器上的事实也可能是原因。首先尝试使用相对URL,如果不起作用,请将jQuery、HTML和必要的文件上载到web服务器,并在那里使用相对URL。正如你所知道的,这都是关于相对URL的;D