使用JQuery和WCF连接JSONP
我正在尝试使用JQuery中的JSONP进行跨域调用。 在IE中,警报方法从未执行过。 在FF / Safari / Chrome中,它始终为空。 我看着Fiddler,WCF方法的结果正如我所料,这是:
method({"Name":"blah1","Data":"blah2"});
这是我的JavaScript:
$.getJSON("http://localhost:5603/MyService/?method=test", null, function (result) { alert("in test: " + result); $("#spText").html(result); });
这是WCF方法:
[OperationContract] [WebInvoke(UriTemplate = "", Method = "GET", BodyStyle=WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)] public Message Blah() { var j = new { Name = "blah1", Data = "blah2" }; JavaScriptSerializer s = new JavaScriptSerializer(); string jsonClient = s.Serialize(j); return WebOperationContext.Current.CreateTextResponse("method(" + jsonClient + ");", "application/json; charset=utf-8", Encoding.UTF8); }
我觉得我真的很接近这个。 任何人都可以发现我做错了吗?
尝试改变
http://localhost:5603/MyService/?method=test
至
http://localhost:5603/MyService/?method=test&callback=?
从文档:
如果URL包含字符串
"callback=?"
在URL中,请求被视为JSONP
参考文献: http : //api.jquery.com/jQuery.getJSON/