मेरे पास निम्न कोड है

$(function() {
    $('.apply').click(function(e) {
        var z = $(this).attr('z-id');
        var r = $(this).attr('r-id');
        $.post(
            "/r-set-z",
            "z_id=" + z + "&r_id=" + r,
            function(data) {
                alert(data);
            }
        );
    });
});

यह सही काम करता है सिवाय इसके कि मुझे प्रतिक्रिया डेटा के साथ कोई अलर्ट नहीं दिखता है। सर्वर पर सब कुछ ठीक चल रहा है। हर बार जब मैं संबंधित बटन पर क्लिक करता हूं तो वहां सभी डेटा प्रोसेसिंग होती है। सर्वर द्वारा लौटाया जाने वाला डेटा application/javascript प्रकार का होता है और इसमें निम्नलिखित शामिल होते हैं

{"msg": "save successful"}

एक बटन क्लिक करने के बाद कोई अलर्ट क्यों नहीं है?

0
lig 13 पद 2011, 16:51

2 जवाब

सबसे बढ़िया उत्तर

सर्वर से प्रतिक्रिया को application/json के रूप में वापस करने का प्रयास करें और या तो अपने $.post में JSON निर्दिष्ट करें:

    $.post(
        "/r-set-z",
        "z_id=" + z + "&r_id=" + r,
        function(data) {
            alert(data);
        }
    , 'json');

या $.getJSON का उपयोग करें

    $.getJSON(
        "/r-set-z",
        "z_id=" + z + "&r_id=" + r,
        function(data) {
            alert(data);
        }
    );
0
David Hedlund 13 पद 2011, 16:58
सामग्री प्रकार को application/json पर सेट करने से समस्या हल हो जाती है। ऐसा लगता है कि jQuery मैजिक application/javascript सामग्री प्रकार पर json का अनुमान नहीं लगा सकता। मुझे याद है कि यह कई संस्करण पहले ऐसा करने में सक्षम था ...
 – 
lig
13 पद 2011, 17:03

नीचे की कोशिश करो।

alert(data.msg);

यह भी सुनिश्चित करें कि कॉलबैक सही जगह पर है

0
Pavan 13 पद 2011, 16:55