C# WCF ResponseFormat JSON在Fiddler中返回JSON,在Chrome/Firefox中返回Xml!
嗨,我有一个WCFREST4.0项目。出于某种原因,我有一个Web服务,它应该返回Json,如果我通过fiddler点击端点,它会返回Json,但如果我输入得到xml的地址,它会通过firefox或chrome返回。发生什么事了 谢谢你的帮助!这是密码 有问题的Web服务:C# WCF ResponseFormat JSON在Fiddler中返回JSON,在Chrome/Firefox中返回Xml!,c#,wcf,json,C#,Wcf,Json,嗨,我有一个WCFREST4.0项目。出于某种原因,我有一个Web服务,它应该返回Json,如果我通过fiddler点击端点,它会返回Json,但如果我输入得到xml的地址,它会通过firefox或chrome返回。发生什么事了 谢谢你的帮助!这是密码 有问题的Web服务: [OperationContract] [WebGet(UriTemplate = "", ResponseFormat = WebMessageFormat.
[OperationContract]
[WebGet(UriTemplate = "",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
public SomeObject [] GetObjects()
{
.....
目标代码:
[DataContract]
public class SomeObject
{
[DataMember]
public string Date { get; private set; }
....
public String Site { get; private set; }
浏览器不能显示原始JSON,但是您可以使用JSON查看器之类的工具
()或Fiddler也适合做那份工作。我将此作为评论发布,但我会在这里添加更多细节 您的浏览器很可能正在发送此标题:
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
注意,它没有提到json,但提到了xml
您的WCF客户端很可能使用了一个不同的“Accept”头,该头优先选择json。您可以在Fiddler中对此进行检查。如果您使用的是.NET 4.0 framework,这就是解决方案: WCF现在有了JSONP的开箱即用支持,只需要很少的配置 基本上,您只需要编辑/添加两个配置文件条目,authenticationMode和StandardEndpoint,瞧,您可以在任何浏览器中查看WCF服务的json响应 编辑:原始链接已关闭-这可能会有所帮助:我也遇到同样的问题。 我必须将web.config中的布尔值从true更改为:
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
错:
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false"/>
检查您的请求标题。特别是“接受”。您在地址栏中键入的地址是什么?web服务的uri。即使在我点击“查看源”时?还有其他地方存在该帖子吗?遇到同样的问题,链接对我来说是死的。这个标题让IIS自动选择响应格式。请参阅我的答案automaticFormatSelectEnabled=“false”
,让服务自行决定格式。