2012-02-16 18 views
7

मैं अजाक्स अनुरोध करने के लिए नया हूं और निम्नलिखित Pastie को एक साथ रखा है। लाइन 107 मेरा $ है .PUT और फ़ायरबग में एक त्रुटि फेंक रहा है कि $ .UT एक समारोह नहीं है। अजाक्स अनुरोध के लिए मुझे पता है कि यह गलत है, हालांकि मैं सफलता समारोह addCell के अंदर क्या करने की ज़रूरत है, इस बारे में काफी हद तक खो गया हूं। क्या मैं इस बारे में सही तरीके से जा रहा हूं?पुट अजाक्स अनुरोध

संपादित

function _ajax_request(url, data, callback, type, method) { 
    return jQuery.ajax({ 
     type: 'PUT', 
     url: "slot_days/show", 
     data: data, 
     success: function(data) 
     { 
callback($.put('/slot_days/show', { '/slot_days/': 'slot_times' }, function(result) 

      { 

      }); 
     ) 
     } 
    }); 
} 

jQuery.extend({ 
    put: function(url, data, callback, type) { 
     return _ajax_request(url, data, callback, type, 'PUT'); 
}}); 
+0

आपको क्या चाहिए पुट या पोस्ट? –

उत्तर

15

आपके पास यहाँ एक त्रुटि (success समारोह गुमनाम होना चाहिए):

return 
    jQuery.ajax({ 
     type: 'PUT', 
     url: 'slot_days/show', 
     data: data, 
     success: function addCell() { 

     } 
    }); 

होना चाहिए:

function _ajax_request(url, data, callback, method) { 
    return jQuery.ajax({ 
     url: url, 
     type: method, 
     data: data, 
     success: callback 
    }); 
} 

और jQuery का विस्तार करने के:

jQuery.extend({ 
    put: function(url, data, callback) { 
     return _ajax_request(url, data, callback, 'PUT'); 
}}); 

और एक नमूना के उपयोग का उदाहरण: जैसे आप अपने मुख्य फ़ाइल में _ajax_request_PUT.js सहित नहीं कर रहे हैं

$.put('/url', { 'foo': 'bar' }, function(result) { 
    // do something with the results of the AJAX call 
}); 
+0

@ डीजेजे, नहीं, मेरा मतलब था कि आपके पास अमान्य जावास्क्रिप्ट है। समस्या यह नहीं है कि यह खाली है। हम इसे बाद में देखेंगे। समस्या यह है कि आपके कोड में आपने लिखा था: 'सफलता: फ़ंक्शन addCell() {} 'जो अमान्य है। यह 'सफलता होना चाहिए: कार्य() {} '। और यदि आप उदाहरण के लिए पैरामीटर के रूप में पारित किए गए कुछ फ़ंक्शन को आमंत्रित करना चाहते हैं तो आप: 'सफलता: कॉलबैक' कर सकते हैं। –

+0

@ डीजेजे, निश्चित रूप से आप कर सकते हैं। बस इसे '$ .put' विधि के तीसरे तर्क के रूप में पास करें:' $ .put ("/" + getDiaryId() + "/ slot_days /" + getSlotId + "/ slot_times /" + 0, slot_time, addCell); ' –

+0

इस तरह: 'सफलता: addCell ($। Put ("/" + getDiaryId() + "/ slot_days /" + getSlotId + "/ slot_times /" + 0, slot_time, addCell)) ' – David

0

लगता है। यही कारण है कि फ़ंक्शन $.put नहीं मिला। इसे पहले शामिल करें, फिर आपकी त्रुटि गायब हो जाएगी।

+0

ठीक है, यह दाग लग सकता है लेकिन मैं यह कैसे करूँगा? – David

+0

जैसे आप jquery शामिल करते हैं। '" ' –

+0

मैंने फ़ाइल को अपनी मुख्य फ़ाइल में अभी भी एक ही त्रुटि प्राप्त कर लिया है। यह संभवतः मेरे सफल फ़ंक्शन और कॉलबैक – David

0

यहां सरल और साफ जवाब देखें: https://stackoverflow.com/a/11549679/916632 बस टाइप मान को "PUT" में बदलें।

415 प्रतिक्रिया को भी संभालता है जो दूसरों के लिए समस्याएं पैदा कर सकता है (यह मुझे अवरुद्ध करता है)। डेटा ऑब्जेक्ट के संदर्भ में 400 प्रतिक्रिया भी भेजी गई।

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