2011-02-09 28 views
6

Xin chào, tôi có dự án WCF Rest 4.0. Đối với một số lý do tôi có một webservice mà nên trả lại Json và nó không nếu tôi nhấn điểm cuối trên fiddler nhưng thông qua firefox hoặc chrome nếu tôi gõ vào địa chỉ tôi nhận được xml. Whats đang diễn ra ???WCF ResponseFormat JSON Trả về Json trong Fiddler, Xml trong Chrome/Firefox!

Cảm ơn bạn đã trợ giúp! Đây là mã.

dịch vụ Web trong câu hỏi:

[OperationContract] 
    [WebGet(UriTemplate = "",     
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json)] 

     public SomeObject [] GetObjects() 
     { 
       ..... 

mã đối tượng:

[DataContract] 
public class SomeObject 
{  
     [DataMember] 
     public string Date { get; private set; } 

     .... 
      public String Site { get; private set; } 
+0

Kiểm tra tiêu đề yêu cầu của bạn. "Chấp nhận" nói riêng. – Foole

+0

Địa chỉ bạn đang nhập vào thanh địa chỉ? –

+0

Dịch vụ web. –

Trả lời

1

Nếu bạn đang sử dụng .NET framework 4.0, đây là giải pháp: http://karnicki.eu/2011/02/rest-wcf-net-4-0-service-with-json-jsonp-for-jquery/

WCF hiện nay có hỗ trợ JSONP out of the box với cấu hình ít yêu cầu.

Về cơ bản bạn chỉ cần chỉnh sửa/thêm hai mục cấu hình tệp, authenticationMode và StandardEndpoint, và thì đấy, bạn có thể xem phản hồi json từ dịch vụ WCF của bạn trong bất kỳ trình duyệt nào.

EDIT: Các liên kết ban đầu là xuống - điều này có thể giúp: http://blog.shutupandcode.net/?p=696

+0

Có nơi nào khác mà bài đăng đó tồn tại không? Có cùng một vấn đề và liên kết đã chết với tôi. –

+0

nj, điều này có thể giúp bạn http://blog.shutupandcode.net/?p=696 – fjxx

2

Tôi đã đăng nhận xét này làm nhận xét nhưng tôi sẽ thêm chi tiết tại đây.

Trình duyệt của bạn rất có thể gửi tiêu đề này:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 

Lưu ý rằng nó không đề cập json nhưng không đề cập đến xml.

Ứng dụng khách WCF của bạn có nhiều khả năng nhất bằng cách sử dụng tiêu đề "Chấp nhận" khác cung cấp tùy chọn json. Bạn có thể kiểm tra điều này trong Fiddler.

+0

Và tiêu đề này cho phép IIS tự động chọn định dạng phản hồi. Xem câu trả lời của tôi 'automaticFormatSelectionEnabled =" false "' để cho dịch vụ tự quyết định định dạng. – enguerran

0

tôi đã cùng một vấn đề. I used a WCF configuration with no svc.

tôi đã phải thay đổi boolean này trong web.config từ đúng:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/> 

false:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false"/> 
Các vấn đề liên quan