একটি AJAX প্রতিক্রিয়া একটি কুকি সেট করতে পারেন? তা না হলে আমার বিকল্প সমাধান কী? আমি এটি জাভাস্ক্রিপ্ট বা অনুরূপ কিছু দিয়ে সেট করা উচিত?
একটি AJAX প্রতিক্রিয়া একটি কুকি সেট করতে পারেন? তা না হলে আমার বিকল্প সমাধান কী? আমি এটি জাভাস্ক্রিপ্ট বা অনুরূপ কিছু দিয়ে সেট করা উচিত?
উত্তর:
হ্যাঁ , আপনি সার্ভার-সাইড কোডে ঠিক তেমনই AJAX অনুরোধে কুকি সেট করতে পারেন যেহেতু সাধারণ অনুরোধের জন্য আপনি যেমন করতেন কারণ সার্ভার একটি সাধারণ অনুরোধ বা AJAX অনুরোধের মধ্যে পার্থক্য করতে পারে না।
AJAX অনুরোধগুলি সার্ভারে অনুরোধ করার একটি বিশেষ উপায়, সার্ভারের কোনও HTTP অনুরোধের মতো প্রতিক্রিয়া জানাতে হবে। অনুরোধের প্রতিক্রিয়াতে আপনি কুকি যুক্ত করতে পারেন।
If the user agent supports HTTP State Management it should persist, discard and send cookies (as received in the Set-Cookie response header, and sent in the Cookie header) as applicable.
- w3.org/TR/XMLHttpRequest
মতে XMLHttpRequest- এর জন্য W3 বৈশিষ্ট অধ্যায় 4.6.3 একটি ইউজার এজেন্ট সেট-কুকি হেডার সম্মান করা উচিত নয়। সুতরাং উত্তর হ্যাঁ আপনি সক্ষম হওয়া উচিত।
উদ্ধৃতি:
যদি ব্যবহারকারী এজেন্ট এইচটিটিপি স্টেট ম্যানেজমেন্টকে সমর্থন করে তবে এটি প্রযোজ্য হিসাবে কুকিগুলি (সেট-কুকি প্রতিক্রিয়া শিরোনামে প্রাপ্ত হিসাবে এবং কুকির শিরোনামে প্রেরণ করা) প্রেরণ করা উচিত।
রেকর্ডের জন্য, পরামর্শ দিন যে উপরের সমস্তগুলি (এখনও) সত্য তবেই যদি এজেএক্স কলটি একই ডোমেনে করা হয়। আপনি যদি এজেএক্স ব্যবহার করে অন্য ডোমেনে কুকি সেট করার বিষয়ে সন্ধান করছেন, আপনি কীটগুলির সম্পূর্ণ ভিন্ন ক্যান খুলছেন । ক্রস-ডোমেন কুকিজ পড়া কার্যকর হয়, তবে (বা কমপক্ষে সার্ভারটি তাদের পরিবেশন করে; আপনার ক্লায়েন্টের ইউএ আপনার কোডটি সেগুলিতে অ্যাক্সেস করার অনুমতি দেয় কিনা তা আবার অন্য একটি বিষয়; ২০১৪ সালের মতো তারা করে)।
withCredentials=true
জন্য সেট করতে হবে xhr
(2) Access-Control-Allow-Credentials
অপশন প্রিফলাইট অনুরোধের পাশাপাশি আসল অনুরোধে উভয় সেট করুন (3) প্রয়োজন মতো কুকি সেট করুন
আপনার সার্ভারটি একটি অ-http অনুরোধে সুরক্ষিত কুকিজ সেট করছে না তাও পরীক্ষা করে দেখুন। সবেমাত্র আমার অজাক্স অনুরোধটি "সুরক্ষিত" সেট সহ পিএইচপি সেশন পাচ্ছে। যেহেতু আমি https এ ছিল না এটি সেশন কুকিটি ফেরত পাঠাচ্ছে না এবং প্রতিটি অজেক্স অনুরোধে আমার সেশনটি পুনরায় সেট করা হচ্ছে।