অন্যান্য লোকেরা যারা এই প্রশ্নের জবাব দিয়েছেন তারা (দুঃখের সাথে) সঠিক যে এই তথ্যটি ব্রাউজারের মাধ্যমে আমাদের দ্বারা গোপন করা হয়েছে, আমি ভেবেছিলাম যে আমি একটি কাজ পোস্ট করব যা নিয়ে এসেছি:
আমি আমার সার্ভার অ্যাপ্লিকেশনটিকে একটি কাস্টম প্রতিক্রিয়া শিরোনাম ( X-Response-Url
) অনুরোধ করা ইউআরএল সমন্বিত হেডার সেট করতে কনফিগার করেছি । যখনই আমার এজাক্স কোডটি কোনও প্রতিক্রিয়া পেয়েছে, এটি xhr.getResponseHeader("x-response-url")
সংজ্ঞায়িত কিনা তা পরীক্ষা করে , কোন ক্ষেত্রে এটির সাথে এটি মূলত অনুরোধ করা url এর সাথে তুলনা করে $.ajax()
। যদি স্ট্রিংগুলি পৃথক হয়, আমি জানি যে একটি পুনর্নির্দেশ ছিল এবং অতিরিক্তভাবে আমরা কী ইউআরএল এসেছি।
এটিতে কিছু সার্ভার-সাইড সাহায্যের প্রয়োজনের ত্রুটি রয়েছে এবং রাউন্ড ট্রিপ চলাকালীন ইউআরএলটি মুং হয়ে গেলে (সমস্যাগুলি উদ্ধৃতি / এনকোডিং ইত্যাদির কারণে) ভেঙে যেতে পারে ... তবে 99% ক্ষেত্রে এটি পাওয়া যায় বলে মনে হয় কাজ শেষ
সার্ভারের দিকে, আমার নির্দিষ্ট কেসটি পিরামিড ওয়েব কাঠামো ব্যবহার করে একটি অজগর অ্যাপ্লিকেশন ছিল এবং আমি নিম্নলিখিত স্নিপেট ব্যবহার করেছি:
import pyramid.events
@pyramid.events.subscriber(pyramid.events.NewResponse)
def set_response_header(event):
request = event.request
if request.is_xhr:
event.response.headers['X-Response-URL'] = request.url
xhr.getResponseHeader("content-type")
দিয়ে শুরু হয়text/html
এবং "লগইন" হিসাবে একটি শব্দ যেমন রয়েছে এবং দেন একটি প্রয়োজনে "আপনার সেশনের সময় শেষ হয়েছে"। এটি অবশ্যই কোনও উত্তর নয়, বরং একটি কর্মচঞ্চল।