创建一个WCF服务从jQuery.AJAX()接受JSON数据
我一直在寻找几个小时并尝试不同的方法来实现这一目标。 我已经尝试了很多关于stackoverflow的文章,或者我太愚蠢了,无法让事情发生,或者我有一些独特而奇怪的配置让我无法体验到快乐。
我创建了本教程概述的WCF服务:
http://www.codeproject.com/Articles/97204/Implementing-a-Basic-Hello-World-WCF-Service
它是超级基础的并且有一个方法,我想要它做的就是允许我使用json使用jQuery.AJAX()。
我把它托管在IIS中,它的工作原理。 我可以毫无问题地访问WSDL。
我尝试使用以下代码使用它:
$.ajax({ dataType: 'json', type: 'POST', contentType: "application/json", url: "//localhost:546/HelloWorldService.svc/GetMessage", data: { name: "Joe" } }).done(function(msg){ console.log(msg); $("#result").append(msg); });
我总是得到错误。 根据我的尝试,我得到500错误,402错误,错误内容错误…所有错误。
我尝试过以下文章中的解决方案。 它们包括让我更改web.config端点(我知道我必须更改它们但我迄今为止没有尝试过添加JSON端点的工作)来添加像
[WebInvoke(Method = "POST", UriTemplate = "json/PostSalesOrderData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
到界面。
以下是我看过的一些文章,并试图粉碎我的解决方案,使其工作没有太大的成功。
Phonegap Android上的Javascript JSON和WCF webservice
HTTP / 1.1 415无法处理消息,因为内容类型为’application / json; charset = utf-8’不是预期的类型’text / xml; 字符集= UTF-8′
具有JSON,JSONP和SOAP端点的WCF服务
两个端点(soap,json)和一个服务方法
WCF REST服务不接受.Net 4中的JSON
我也经历了这个教程并尝试使用他必须说的来让我的解决方案正常工作。 依然没有!
http://www.primordialcode.com/blog/post/passing-json-serialized-objects-wcf-service-jquery
这就是我的界面的样子
[ServiceContract] public interface IHelloWorldService { [OperationContract] [WebInvoke(UriTemplate = "GetMessage", Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] String GetMessage(String name); }
任何人都可以帮我体验快乐吗?
提前感谢您查看我的问题。 如果您需要更多信息或我没有提供足够的信息,请告诉我,以便我帮助您!
我一定错过了一些愚蠢的东西……我知道这不是很难。
编辑:
工作Web.Config
改变这一行
data: { name: "Joe" }
至
data: JSON.stringify({name: 'Joe'});
编辑:
这样做是为了您的服务。 在配置中添加WebHttp绑定。
希望你知道在哪里添加这个。 如果不让我知道,我会尝试提供一些意见。
编辑:
跟进我的评论,
我来晚了,但是你仍然需要解决一些问题才能让它发挥作用。 您需要更改端点的绑定以支持HTTP操作。
maxBufferSize
和maxReceivedMessageSize
是可选的。
编辑:哎呀,忘了添加你的behaviorConfiguration
。