2011-02-05 17 views
5

में GET अनुरोध भेजता है, मैं एक विश्वसनीय वेब सेवा के लिए पुट अनुरोध करने का प्रयास कर रहा हूं, हालांकि, ऐसा लगता है कि jQuery 1.5 'प्रकार' सेटिंग में किसी भी बदलाव का जवाब देता है। अनुरोध जीईटी के रूप में भेजा जाता है चाहे 'टाइप' में कोई फर्क नहीं पड़ता। JQuery 1.4 में यह कोई समस्या नहीं है।jQuery 1.5 केवल AJAX विधि

$.ajax({ 
    type: "PUT", 
    url: "https://api.somesite.com/v1.0/people/" + individualID + "/", 
    dataType: "jsonp", 
    data: $("#editProfile").serializeArray(), 
    cache: "false", 
    success: function(data,textStatus,jqXHR) { 
     $.modal.close(); 
    }, 
    error: function(jqXHR,textStatus,errorThrown) { 
     alert("Error!"); 
    } 
}); 
+1

आपने वास्तव में एक बग रिपोर्ट के रूप में एक सवाल नहीं पूछा है। – Phrogz

+0

आप किस ब्राउजर का उपयोग कर रहे हैं? –

+0

सफारी और फ़ायरफ़ॉक्स दोनों में कोशिश की गई – Austin

उत्तर

6

जहां तक ​​मुझे पता है, आप PUT के माध्यम से JSONP अनुरोध नहीं कर सकते हैं। चूंकि JSONP दूरस्थ डोमेन पर इंगित <script> तत्व इंजेक्शन द्वारा काम करता है, इसलिए वह अनुरोध हमेशा एक GET अनुरोध होगा।

यदि आपको बिल्कुल दूरस्थ डोमेन पर PUT अनुरोध करना होगा, तो आपको या तो अपने स्थानीय डोमेन पर सर्वर-साइड प्रॉक्सी का उपयोग करना होगा या यदि आपको IE समर्थन की आवश्यकता नहीं है तो CORS में देखें।

+1

अगर मैं देने के लिए कोई वोट छोड़ दिया गया तो मैं इसे ऊपर उठाऊंगा। –

+0

जब मैंने अनुरोध से "डेटा टाइप: जेसनपी" सेटिंग हटा दी, तो ब्राउज़र ने वास्तव में दूरस्थ डोमेन को PUT अनुरोध किया था। – Austin

+0

यह सीओआरएस का उपयोग कर रहा है। आईई पर सीओआरएस काफी हद तक टूटा हुआ है और अगर मैं सही हूं तो आप आश्चर्यचकित नहीं होंगे और आप विधि को नहीं बदल सकते हैं। – Malvolio

0

jQuery.ajax() docs से::

अनुरोध करने के लिए ("पोस्ट" या "GET"), डिफ़ॉल्ट है "GET" के प्रकार

यहाँ मेरी कोड है। नोट: अन्य HTTP अनुरोध विधियां, जैसे कि PUT और DELETE, का भी यहां उपयोग किया जा सकता है, लेकिन वे सभी ब्राउज़र द्वारा समर्थित नहीं हैं।

शायद कुछ अतिरिक्त ब्राउज़र जानकारी के साथ हम समस्या का कारण बनने के बारे में पता लगा सकते हैं, लेकिन अब ऐसा लगता है कि jQuery जीईटी और पोस्ट को छोड़कर कार्यक्षमता की गारंटी नहीं देना चाहता। यह पता लगाने के लिए आश्चर्यजनक है =)

0

How do I PUT data to Rails using JQuery शायद?

संपादित करें: कहां, आपने यह नहीं कहा कि webservice रेल में था। लेकिन यह ऐसा कुछ भी समर्थन कर सकता है। क्या आपने केवल एक POST अनुरोध भेजने का प्रयास किया था?

0

मैं कुछ इसी तरह से संघर्ष कर रहा था। मैं सफलतापूर्वक 1.5 से पहले एक पुट भेजने में सक्षम हूं लेकिन 1.5 के साथ काम करना बंद कर दिया। मुझे पता है कि 1.5 में एजेक्स सामान कैसे संभाला गया था, इस बारे में एक बड़ा बदलाव आया था, इसलिए मैं उस पर ध्यान रखूंगा। जब यह काम करता था तो उसने सफारी, फ़ायरफ़ॉक्स & क्रोम में मेरे लिए ठीक काम किया। जब यह काम करता है तो आपको पहले एक विकल्प भेजा जा सकता है और जैसा कि आपके सर्वर पक्ष को विकल्पों को संतोषजनक प्रतिक्रिया देना होगा, ला लार्स का अनुरोध करें। यहां एक टुकड़ा ओटी परीक्षण कोड है जो मेरे लिए पहले 1.5 काम करता है, इसलिए यह संभव है। एक तरफ के रूप में मैं OPTIONS प्रतिक्रिया क्लाइंट पक्ष को कैश करने के लिए फ़ायरफ़ॉक्स प्राप्त करने में सक्षम नहीं था। अन्य ब्राउज़रों ने किया।

http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" 

var url = 'http://api.example.com/rest/action?key=123ABC&data={"value":55}'; 
$.ajax({ 
    type: "PUT", 
    url: url, 
    data: {}, 
    success: function(msg){ 
    alert("Data Saved: " + msg); 
    }, 
    error: function(msg){ 
    console.debug(msg); 
    } 
});