2011-02-10 10 views
16

IE8/Chrome, FF hoạt động tốt nhưng Internet Explorer 7 đang khiến tôi đau đầu.Vấn đề với JSON trong Internet Explorer 7

tôi đang cố gắng để có được kết quả số cho hình thức thực tế

$(".checklist label").click(function() { 
    checkResults(); 
}); 

function checkResults() { 
    var str = $("form").serializeArray(); 
    $.ajax({ 
     type: "POST", 
     url: "/data.asmx/GetTotal", 
     cache: false, 
     contentType: "application/json; charset=utf-8", 
     data: JSON.stringify({ data: str }), 
     dataType: "json", 
     success: handleHtml, 
     error: ajaxFailed 
    }); 
} 

function handleHtml(msg) { 
    $("#result").text(msg.d); 
} 

function ajaxFailed(xmlRequest) { 
} 

Tôi đã làm gì sai mà IE7 sẽ không làm việc?

Cảm ơn

Trả lời

30

JSON.stringify không phải là một phần của IE7.

Bạn sẽ phải sử dụng thực hiện hoạt Javascript Douglas Crockford điều này:

https://github.com/douglascrockford/JSON-js

Cụ thể hơn kịch bản này:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

Nó sẽ thêm stringify và phân tích phương pháp để trình duyệt không thực hiện điều này (như IE7 và dưới đây)

+5

BTW bạn không phải sử dụng js trên stringify, như tham số dữ liệu trong $ .ajax bạn có thể sử dụng toàn bộ đối tượng. – MarrLiss

+0

cảm ơn câu trả lời này đã giúp tôi ... +1 cho câu trả lời hữu ích và -1 cho IE. – Pranav

+0

@MarrLiss Bạn có nghĩa là trong IE7 chúng ta không cần phải làm Stringify? Tôi không thể làm cho nó làm việc (không có bất kỳ tập tin thêm) – Lijo