2010-02-02 8 views
5

मैं एक छोटा क्रोम एक्सटेंशन बना रहा हूं जो मेरे कंपनी नेटवर्क में किसी सर्वर पर POST http अनुरोध के माध्यम से संदेश भेजना होगा, और मैं jQuery 1.4 का उपयोग कर रहा हूं। 1 जावास्क्रिप्ट भाग के विकास को तेज करने के लिए।jQuery.ajax() क्रोम एक्सटेंशन में GET के रूप में POST अनुरोध भेजता है

मैं अनुरोध भेजने के लिए इस कोड है: क्रोम के लिए लॉग इन मुझे लगता है कि सर्वर एक HTTP स्थिति 400 के साथ और पाठ के साथ प्रतिक्रिया करता है,

function send() { 
    $.ajax({ 
     url: "http://mycompany.com/update", 
     method: "POST", 
     data: {status: "sometest", in_reply_to_status_id: "anId"}, 
     success: function(data, textStatus) { 
      console.log("success"); 
      console.log(data); 
      console.log(textStatus); 
     }, 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      console.log("error"); 
      console.log(XMLHttpRequest); 
      console.log(textStatus); 
      console.log(errorThrown); 
     }, 
     complete: function(XMLHttpRequest, textStatus) { 
      console.log("complete");    
     } 
    });  
} 

अनुरोध इस तरह से किया विफल रहता है "यह तरीकों की आवश्यकता है पद"।

अगर मैं इस के साथ उपरोक्त कोड को बदलने के लिए:

function send() { 
    $.post("http://sunshine.emerasoft.com/statusnet/api/statuses/update.xml", {status: "sometext", in_reply_to_status_id: "anId"}, function(data) { 
     console.log(data) 
    }); 
} 

सब कुछ ठीक, http स्थिति है काम करता है 200 और सर्वर साइड मैं देख सकता हूँ कि डेटा मैं भेजा सही ढंग से सहेजा गया है।

मुझे पूर्ण $ .ajax() विधि का उपयोग करने की आवश्यकता है क्योंकि मुझे सफलता या विफलता के मामले में कुछ काम करने की आवश्यकता है, और अनुरोध पूरा होने पर कुछ अन्य, इसलिए $ .post() पर्याप्त नहीं है।
क्या मैं कुछ गलत कॉल कर रहा हूं $ .ajax(), या किसी प्रकार का मुद्दा है, शायद क्योंकि मैं क्रोम एक्सटेंशन के xontext में हूं?

धन्यवाद

उत्तर

13

मेरा मानना ​​है कि $.ajax() समारोह एक 'प्रकार' विकल्प है, न कि 'विधि' विकल्प लेता है।

डिफ़ॉल्ट प्रकार प्राप्त होता है।

+0

आप बिल्कुल सही हैं :) मैं jQuery दस्तावेज़ों के माध्यम से दस लाख बार गया और मैंने कभी नहीं देखा कि मैं गलत विकल्प का उपयोग कर रहा था। यह मुझे इंगित करने के लिए धन्यवाद! –

+0

आश्चर्य की बात यह है कि मुझे हल करने में काफी समय लगा ... जब एक ही डोमेन से पोस्ट किया जाता है तो वास्तव में पोस्ट में उपयोग किया जाता था जब मेरे पास 'विधि' थी। लेकिन जैसे ही मैंने किसी भिन्न डोमेन 'क्रॉस-डोमेन' से पोस्ट करने का प्रयास किया, तो यह समाप्त हो जाएगा। इसने इसे हल किया। कोई विचार नहीं कि एक ही डोमेन पर 'विधि' क्यों काम करता है। – Futile32

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