Sementara orang lain yang menjawab pertanyaan ini (sayangnya) benar bahwa informasi ini disembunyikan dari kami oleh browser, saya pikir saya akan memposting solusi yang saya dapatkan:
Saya mengonfigurasi aplikasi server saya untuk menyetel header tanggapan khusus ( X-Response-Url
) yang berisi url yang diminta. Setiap kali kode ajax saya menerima respons, ia memeriksa apakah xhr.getResponseHeader("x-response-url")
sudah ditentukan, dalam hal ini membandingkannya dengan url yang awalnya diminta melalui $.ajax()
. Jika string berbeda, saya tahu ada pengalihan, dan juga, url apa yang sebenarnya kami tuju.
Ini memang memiliki kelemahan karena membutuhkan bantuan sisi server, dan juga dapat rusak jika url menjadi diperkecil (karena masalah kutipan / pengkodean dll) selama perjalanan pulang pergi ... tetapi untuk 99% kasus, ini tampaknya mendapatkan pekerjaan selesai.
Di sisi server, kasus khusus saya adalah aplikasi python menggunakan kerangka web Pyramid, dan saya menggunakan cuplikan berikut:
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