2015-06-10 19 views
5

Bất cứ lúc nào tôi sử dụng serializeJSON trong cf9 JSON nó trả về được thêm vào trước bằng '//'. Điều này là khá bực bội vì ngay cả coldfusion sẽ ném một lỗi cố gắng giải mã đó là json. Ví dụ:Coldfusion 9 serializeJSON()

var a = { stuff = 'some content' }; 
a = serializejSON(a); // the content of a is now: //{"STUFF":"some content"} 
b = deserializeJSON(a); 

Mã trên sẽ báo lỗi có nội dung 'không thể phân tích ký tự ở vị trí 1: /'. Để thực hiện công việc này, tôi phải thay chuỗi và hoán đổi '' cho '//'.

Tôi dường như không tìm thấy bất kỳ thông tin nào về vấn đề này. Đây có phải là một số tính năng mà tôi không hiểu và đang hoạt động như dự định không? Tôi có thiếu một số loại thiết lập sửa lỗi này?

+4

bạn có thể thay đổi cài đặt Quản trị viên CF trong Cài đặt máy chủ> Cài đặt. Vô hiệu hóa "Prefix serialized JSON với" trường –

+2

@MattBusche bạn nên quảng bá nhận xét của bạn cho câu trả lời. Đó chắc chắn là nơi '//' xuất phát từ đó. Nhưng xin lưu ý rằng đề xuất tắt cài đặt đó đang giới thiệu một nguy cơ bảo mật tiềm ẩn. Chỉ để làm cho OP và những người khác nhận thức được. –

+1

@MattBusche - Bạn có thể vui lòng cập nhật câu trả lời của mình để đề cập đến [các tác động bảo mật] (http://stackoverflow.com/questions/15501123/coldfusion-10-returnformat-json-adding-characters) của việc tắt tính năng đó không? Trong trường hợp anh chàng tiếp theo đọc nó không biết về nó và áp dụng nó mà không hiểu các nhánh. – Leigh

Trả lời

8

Bạn có thể tắt tính năng này trong quản trị viên ColdFusion. Chuyển đến Cài đặt máy chủ> Cài đặt và bỏ chọn Prefix serialized JSON with

Tuy nhiên, có những tác động bảo mật nếu bạn tắt tính năng này. Điều này giúp bảo vệ dữ liệu JSON của bạn từ các cuộc tấn công cross-site scripting và được giải thích sâu hơn trong bản cập nhật StackOverflow answer

0

nhanh này: Một anh chàng trước đây đệ trình một vé lỗi cho Adobe để vô hiệu hóa tiền tố JSON an toàn của SerializeJSON chức năng trong dưới hình thức của một thuộc tính ..

Ticket [Fixed]

Kể từ đó Adobe nghĩa vụ và thêm thuộc tính useSecureJSONPrefix vào SerializeJSON Chức năng.

Documentation

Bằng cách đó bạn có thể giữ các thiết lập bảo mật trong ColdFusion Administrator và chỉ đơn giản là vô hiệu hóa nó mà bạn không cần đến nó.