2008-09-21 43 views
117

Tôi có một dịch vụ web mà khi được gọi mà không chỉ định một cuộc gọi lại sẽ trả về một chuỗi JSON sử dụng application/json làm loại nội dung.Loại nội dung tốt nhất để phân phát JSONP?

Khi gọi lại được chỉ định, nó sẽ bọc chuỗi JSON trong hàm gọi lại, vì vậy nó không còn là JSON hợp lệ nữa. Câu hỏi của tôi là, tôi có nên sử dụng nó như application/javascript trong trường hợp này hoặc vẫn sử dụng application/json?

Trả lời

142

Sử dụng application/javascript, theo cách đó, khách hàng có thể dựa vào loại nội dung mà không phải tự kiểm tra xem phản hồi có đệm hay không.

+1

Nó thất bại trong IE 9 với thông điệp "SEC7112: Script từ http://xyz.com đã bị chặn do kịch câm loại không phù hợp "Có ý kiến ​​gì không? –

+0

Loại nội dung "ứng dụng/javascript" có thể không khớp với "văn bản/javascript" được chỉ định trong thẻ tập lệnh (hoặc được mong đợi theo mặc định vì một số lý do) –

+0

Dựa trên thông tin trong [bài viết này] (http://blogs.msdn.com /b/ie/archive/2010/10/26/mime-handling-changes-in-internet-explorer.aspx) văn bản/javascript và ứng dụng/javascript sẽ hoạt động trong IE 9. Tôi tự hỏi @ pit-digger nếu máy chủ chỉ không trả lại tiêu đề loại nội dung chính xác. – spig

115

Sử dụng application/jsonas per rfc4627.txt nếu những gì bạn trả về là JSON thuần túy.

Nếu bạn quay trở lại Javascript (mà thực sự những gì JSONP là là), sau đó sử dụng application/javascriptas per rfc4329.txt

+19

+1 để trích dẫn RFC. –

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