2011-07-05 36 views
10

tôi đã viết một số dịch vụ web ASP.NET có sử dụng mã hóa JSON, a la:Tại sao dịch vụ web ASP.NET JSON trả lại kết quả trong 'd'?

[WebInvoke()] 
[OperationContract] 
public int SetInformation(int recordid, string data) 
{ 
    return 42; 
} 

và JSON trở là:

{"d": 42} 

Tại sao các tham số có tên d? Tôi có thể kiểm soát điều đó không? Nói, với e?

Để tham khảo, một số câu hỏi tương tự cuối cùng tôi đã có thể để khai thác:

Trả lời

12

This is a "an ninh" tính năng ngăn không cho JSON được trả về từ việc có thể được thực hiện trực tiếp javascript bên trong một câu lệnh Eval. Hoặc một cái gì đó rất giống nhau dọc theo những dòng này.

biết thêm thông tin về chủ đề này: http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/ hãy nhìn vào phần có nhãn Waiter, there’s a .d in my msg soup!

+0

Những bài báo đó dường như là lời dứt khoát về đề tài này. Nó không nói lý do tại sao "d" cụ thể đã được chọn, mặc dù ...;) Viết tắt cho dữ liệu? –

+0

Tôi sẽ phỏng đoán rằng họ chọn d viết tắt cho dữ liệu để thêm số tiền tối thiểu của chi phí json vào tải trọng. Nó có lẽ đã được nhiều sạch hơn trong số họ đã thực sự sử dụng dữ liệu hoặc thậm chí Payload hoặc từ mô tả khác hơn. –

+0

Chỉ cần nếm súp! – HuckIt

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