2011-02-28 12 views
8

मुझे खेद है कि यह उत्तर इस वेबसाइट में पर अन्य प्रश्नों के समान लगता है लेकिन मुझे जो चाहिए वह मुझे नहीं मिला। "अवैध संचालन WrappedNative प्रोटोटाइप वस्तु पर":लपेटा हुआ प्रोटोटाइप ऑब्जेक्ट पर अवैध ऑपरेशन

$.ajax({ 
      url: '../../cgi-bin/executeQuery', 
      type: 'GET', 
      data: ({siid:5185,of:"xmlWithColID"}), 
      dataType: 'xml', 
      success: function(xmlR){ 
        try{ 
          $.ajax({ 
            url: '../../cgi-bin/authList.py', 
            type: 'GET', 
            data: ({xmlToFormat:xmlR,service:"paperList"}), 
            dataType: 'xml', 
            success: function(data){ 
              try{ 
                displayResult(data,loadXMLDoc("js/authList/paperTableStyle.xsl"),"divPaperTable"); 
              }catch(e){ 
                console.log(e.message); 
              } 
            }, 
            complete: function(XMLHttpRequest, textStatus){ 
              $('#divMakingAuthorList').addClass('secondary'); 
              $('#divMakingAuthorList').hide(); 
            } 
          }); 
        }catch(e){ 
          console.log(e.message); 
        } 
      } 
    }); 

जो मुझे एफएफ में निम्न त्रुटि देता है:

मैं इस कोड है।

जब मैंने अपने कोड के "सफलता" भाग को हटा दिया, तो त्रुटि संदेश अभी भी वहां था। बाद में, मैंने "पूर्ण" भाग हटा दिया और त्रुटि संदेश भी वहां था। लेकिन फिर, जब मैंने अपने कोड की निम्न पंक्ति को हटा दिया: डेटा: ({xmlToFormat: xmlR, सेवा: "paperList"}), संदेश चला गया था।

लेकिन मुझे कारण समझ में नहीं आता है। क्या एजीएक्स कार्यक्रम में डेटा के रूप में मेरे CGI को "xml" भेजना संभव है?

धन्यवाद

+1

आपके पास डेटा लाइन में जो है वह JSON की तरह दिखता है, एक्सएमएल नहीं। – justkt

+1

फ़ायरफ़ॉक्स के लिए पेंटाडैक्टिल एक्सटेंशन का उपयोग करते समय मुझे यह त्रुटि बहुत देर हो रही है जो बहुत ही परेशान है। – trss

उत्तर

7

कि त्रुटि संदेश आम तौर पर जब आप एक देशी समारोह उदाहरण के लिए "eval"

आप कुछ इस तरह करते हैं जैसे रैप करने के लिए प्रयास करने के लिए संदर्भित करता है -



(function() { 

    var t = eval; 

    eval = function() { 
     t.apply(window, arguments); 
    } 

}(); 

फ़ायरफ़ॉक्स जीता ' टी आपको अब eval का उपयोग करने की अनुमति देता है क्योंकि फ़ंक्शन हस्ताक्षर अब इसके आंतरिक संदर्भ बिंदु से मेल नहीं खाता है और यह इसे एक भयानक रणनीति मानता है। मुझे लगता है कि यह पूरी तरह से बेवकूफ है और जावास्क्रिप्ट की लचीलापन के बहुत ही आधार का उल्लंघन करता है, लेकिन यह अब हमें सौदा करना है।

वही x = document.createElement की तरह कुछ के लिए चला जाता है; कॉलिंग एक्स ('div') फ़ायरफ़ॉक्स को इमो किशोरों की तरह चमक देगा।

मेरा अनुमान है कि जब xmlR दूसरे AJAX अनुरोध को पास नहीं किया जाता है तो अनुरोध विफल रहता है और इसलिए आपकी सफलता ब्लॉक को कभी भी नहीं कहा जाता है। मुझे पता है कि आप उल्लेख करते हैं कि आपने सफलता ब्लॉक के बिना कॉल करने की कोशिश की और आपने अभी भी संदेश देखा लेकिन शायद आप पुष्टि करने के लिए एक खाली सफलता समारोह के साथ पुनः प्रयास कर सकते हैं।

मैं यह जांचता हूं कि प्रदर्शन में क्या हो रहा है Result और loadXMLDoc - और मेरा मानना ​​है कि अवैध ऑपरेशन सुरक्षा जांच हाल ही में फ़ायरफ़ॉक्स में जोड़ दी गई थी ताकि यदि आप 3.0 जैसे पुराने संस्करण को आजमा सकते हैं तो आप इस भेद की पुष्टि कर सकते हैं।

अन्यथा मुझे आपके द्वारा प्रदान किए गए कोड के साथ चमकते हुए कुछ भी दिखाई नहीं दे रहा है और एक्सएमएल डेटा भेजना पूरी तरह से AJAX के साथ मान्य है।

संबंधित मुद्दे