एक विश्वसनीय एसओए में, मान लीजिए कि मैं AJAX के माध्यम से एक POST अनुरोध जारी करता हूं लेकिन मुझे अनुरोध समय से पहले कोई प्रतिक्रिया नहीं मिलती है। आगे मान लें कि अनुरोध का पुन: जमा करना हानिकारक होगा। पोस्ट बेवकूफ नहीं है। उदाहरण के लिए, शायद मैं पैसे का बैंक हस्तांतरण पोस्ट कर रहा हूं। अगर मुझे कोई प्रतिक्रिया नहीं मिलती है, तो मुझे नहीं पता कि सर्वर ने अनुरोध संसाधित किया है या नहीं।टाइम आउट आउट POST अनुरोधों से निपटने के लिए कैसे करें
इस बात से निपटने का सबसे अच्छा अभ्यास क्या है, मानते हैं कि मेरे पास क्लाइंट-साइड और सेवा पक्ष पर नियंत्रण है?
मेरा प्रारंभिक विचार प्रत्येक POST अनुरोध के साथ एक nonce (यानी एक छद्म-आईडी; कुछ अद्वितीय पहचानकर्ता) शामिल करना है; जैसे शायद if-None-match हेडर में एक मान। इस दृष्टिकोण के साथ, क्लाइंट-साइड एक ही छद्म-आईडी के साथ एक समयबद्ध अनुरोध को प्रोग्रामेटिक रूप से फिर से जारी कर सकता है और यदि सर्वर दोहराना मूल्य रखता है तो सर्वर इसे अस्वीकार कर सकता है।
यदि आपको किसी निश्चित टाइमआउट के बाद कोई प्रतिक्रिया नहीं मिलती है, तो बस इसे विफल मानें और क्लाइंट को फिर से प्रयास करने या निरस्त करने के लिए कहें। स्पष्ट रूप से सर्वर पर कोड वही आईडी के लिए जांच करनी चाहिए। – alfred
स्पष्ट होने के लिए, यह छद्म-आईडी * संसाधन आईडी नहीं है - मैं सीधे संसाधन को संबोधित नहीं कर रहा हूं। मैं POST का उपयोग कर रहा हूं क्योंकि इसका इरादा है; अर्थात्, एक संसाधन हैंडलर को पोस्ट करना (उदा।/स्थानान्तरण, नहीं/स्थानान्तरण/)। अन्यथा, मैं पहली जगह में कोई पोस्ट नहीं करूँगा। –
johnr
यह एक समान सवाल है "[REST के साथ डुप्लिकेट POSTs से बचें] (http://stackoverflow.com/q/15159274/1347968)"। – siegi