2010-06-06 32 views
8

Dường như từ tất cả những gì tôi đọc và xem, việc hiển thị JSON từ Dịch vụ dữ liệu WCF phải dễ dàng như việc thêm thuộc tính JSONPSupportBehavior vào lớp dịch vụ.Không thể lấy JSONP làm việc với WCF Data Services

Vấn đề là VS2010 không nhận ra thuộc tính JSONPSupportBehavior.

Tôi có thiếu tham chiếu không? Nó có vẻ như từ tất cả các bài viết, nó đã được hỗ trợ ra khỏi hộp.

+0

Tải xuống mã [tại đây] (http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=DataServicesJSONP&DownloadId=11208). Điều này thực sự hoạt động! –

+0

Tôi không nghĩ rằng nó được bao gồm theo mặc định. Xem [link] này (http://code.google.com/p/dotnet-visualization-datasource/source/browse/trunk/Web+Services/WCFDataService/JSONPSupportBehavior.cs?spec=svn84&r=84) đối với một số mã ví dụ . – mdm20

Trả lời

9

Dịch vụ dữ liệu WCF hỗ trợ JSON ra khỏi hộp, không cần thêm thuộc tính hoặc bất kỳ thứ gì.

Để nhận được phản hồi trong trình khách định dạng JSON, hãy sử dụng thương lượng loại nội dung HTTP chuẩn.

Cụ thể, chúng cần bao gồm application/json trong tiêu đề accept của yêu cầu.

Có các ví dụ trong phần này của OData protocol documentation.

Các ví dụ này hiển thị các yêu cầu HTTP thô. Các API HTTP của ứng dụng khách khác nhau có các cơ chế khác nhau để chỉ định tiêu đề yêu cầu.

Các JSONPSupportBehavior thuộc tính là một ví dụ về một phần mở rộng cho phép khách hàng sử dụng một lựa chọn chuỗi truy vấn URL (ví dụ: $format=json) ngoài việc đàm phán content-type, và cũng có thể bổ sung hỗ trợ cho "JSONP" (ví dụ: $callback=[function-name]).

Chúng hữu ích trong các trường hợp bạn không kiểm soát tiêu đề, chẳng hạn như khi thực hiện quyền truy cập tên miền chéo thông qua thẻ tập lệnh.

Nếu bạn muốn sử dụng JSONPSupportBehavior bạn có thể lấy nó ở đây:

http://code.msdn.microsoft.com/DataServicesJSONP

+0

YE, tôi đã truy cập vào liên kết mà bạn đã cung cấp nhưng bỏ lỡ liên kết tải xuống có tệp lớp trong đó. Cảm ơn – SevilNatas

0

WCF không chỉ suppors JSON out-of-the-box, nhưng nó cũng hỗ trợ JSONP out-of-the- nếu bạn sử dụng WCF WebApi (xem trước 6). Tham gia VS 2010 với NuGet. Khi bạn đã cài đặt, hãy xem here để biết thêm thông tin.

2

các phiên bản mới hơn của Data Services WCF hỗ trợ JSON theo mặc định và bạn phải có

Accept: application/json;odata=verbose 

trong tiêu đề yêu cầu.

Accept: application/json 

không còn đủ. Thông tin thêm here.

Các vấn đề liên quan