Có cách nào để trích xuất url yêu cầu từ đối tượng xhr không? Tôi có thể thấy url trong firebug thông qua thuộc tính kênh nhưng bạn không thể truy vấn bằng javascript.Nhận url yêu cầu từ đối tượng xhr
Trả lời
Tôi hy vọng tôi sẽ hiểu chính xác vấn đề của bạn.
Sẽ khá đơn giản để bao bọc các đối tượng XHR của bạn với đối tượng của riêng bạn để cho phép loại chức năng này.
Dưới đây là một ví dụ quá đơn giản:
// Assumption: GetXHR() returns a new XHR object, cross browser.
function HTTPGet(url, onStartCb, onCompleteCb)
{
var xhr = GetXHR();
// Construct your own xhr object that contains the url and the xhr object itself.
var myXhr = { xhr: xhr, url: url };
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
onCompleteCb(myXhr);
}
};
xhr.open("GET", url);
onStartCb(myXhr);
xhr.send(null);
}
tôi đã không kiểm tra này rộng rãi, nhưng nó phải làm việc và với một số sửa đổi (xử lý lỗi, đi qua các thông số, vv), bạn có lẽ nên có thể biến ví dụ này vào một giải pháp đầy đủ chức năng.
vâng đây sẽ là cách tiếp cận tốt nhất. sự cần thiết phải refactor tất cả các js tôi hiện đang làm việc với. Chúc mừng cho câu trả lời – redsquare
Nếu bạn có thể cung cấp một số mã bạn hiện đang sử dụng, bạn có thể tìm ra cách thanh lịch để thêm chức năng này mà không phải sửa đổi mã của mình một cách đáng kể. Nó sẽ có thể khỉ-vá các đối tượng XHR (Tôi đã không thử nghiệm này, tho) bạn đang quay trở lại callbacks của bạn (là bạn?). –
Theo https://developer.mozilla.org/en/XmlHttpRequest, bạn thực sự có thể nhận được channel
nếu bạn có đặc quyền cao; tuy nhiên, channel
là không chuẩn (có thể không hoạt động trong các trình duyệt khác) và thực tế thông số W3C tại http://www.w3.org/TR/XMLHttpRequest/ không đề cập đến channel
cũng như cách khác để "trích xuất URL yêu cầu". Tôi nghi ngờ, do đó, không có cách nào để làm như vậy hợp lý trên các trình duyệt.
nhận được thông tin này không phải là một vấn đề cho một phần mở rộng, (vì nó có quyền truy cập đặc quyền) nhưng không có sẵn như tôi biết trong cách sử dụng xmlhttprequest bình thường –
Nếu bạn đang sử dụng jQuery, bạn có thể sử dụng chức năng "beforeSend" trong yêu cầu AJAX để sửa đổi đối tượng jqXHR. Ví dụ:
$.ajax({
...
url: "http://some/url",
beforeSend: function(jqxhr, settings) { jqxhr.requestURL = "http://some/url"; },
...
});
Đối tượng jqXHR truyền cho callbacks khác nhau thì sẽ có mà biến, jqXHR.requestURL
, mà bạn có thể truy cập.
Nếu bạn thực hiện 'jqxhr.requestURL = settings.url', bạn có thể thiết lập nó trên toàn cầu trong một cuộc gọi' $ .ajaxSetup'. –
Với những điều sau đây Hack không wrapper được yêu cầu:
var xhrProto = XMLHttpRequest.prototype,
origOpen = xhrProto.open;
xhrProto.open = function (method, url) {
this._url = url;
return origOpen.apply(this, arguments);
};
Cách sử dụng:
var r = new XMLHttpRequest();
r.open('GET', '...', true);
alert(r._url); // opens an alert dialog with '...'
- 1. Nhận url cuối cùng từ đối tượng XHR sau khi chuyển hướng
- 2. Cách nhận URL yêu cầu?
- 3. Chuyển đối tượng JSON tới url có yêu cầu
- 4. jQuery Nhận Yêu cầu trên URL HTTP
- 5. Nhận URL yêu cầu trong một servlet
- 6. django sửa đổi đối tượng yêu cầu
- 7. Làm thế nào để truy cập url băm/đoạn từ đối tượng Yêu cầu Django
- 8. Độ trễ yêu cầu đối tượng từ S3 đến EC2
- 9. Trả lại chuyển hướng khi phản hồi yêu cầu XHR
- 10. Lỗi VB "đối tượng được yêu cầu"
- 11. Nhận địa chỉ IP của máy chủ từ đối tượng Yêu cầu/phiên JSP
- 12. RSpec.configure và đối tượng yêu cầu
- 13. Các URL tương đối trong các yêu cầu AJAX
- 14. Đối số dòng lệnh - đối tượng được yêu cầu: 'objshell.NameSpace (...)'
- 15. Làm cách nào để nhận URL của yêu cầu?
- 16. Nhận URL của trang được yêu cầu gây ra 404
- 17. Nhận URL của người gửi yêu cầu với HttpServletRequest
- 18. AJAX bài viết yêu cầu URL nhận được ký tự lạ thêm
- 19. Gửi yêu cầu XHR từ tiện ích mở rộng của Chrome bằng cookie
- 20. đặt url tham chiếu với yêu cầu ajax
- 21. ASP cổ điển - Yêu cầu đối tượng rỗng
- 22. JS/jQuery nhận tiêu đề yêu cầu HTTPRequest?
- 23. X509 Không thể tìm thấy yêu cầu đối tượng
- 24. Flask không nhận được bất kỳ dữ liệu từ dữ liệu yêu cầu jQuery
- 25. url yêu cầu phân tích cú pháp node.js - socket.io được yêu cầu
- 26. Làm cách nào để nhận nhãn URL khi phân tích cú pháp URL yêu cầu?
- 27. Làm cách nào để nhận được url được chuyển hướng từ mô-đun yêu cầu nodejs?
- 28. PHP Zend Framework - Làm thế nào để yêu cầu phân đoạn URI từ đối tượng yêu cầu?
- 29. Yêu cầu Python tìm nạp tệp từ url cục bộ
- 30. Chỉ chấp nhận yêu cầu nhận/gửi từ localhost
là này cho một phần mở rộng firefox hoặc cho một kịch bản trên một trang? Nếu nó ở trên trang, tại sao bạn không có thông tin đó? –
Tôi có nhiều khoảng thời gian yêu cầu dữ liệu khác nhau, tôi có một số sự kiện ajaxStart & ajaxComplete phổ biến để xử lý sự kiện chung (hiển thị/ẩn chỉ báo tiến trình). Tôi chỉ cần truy cập vào url cho trường hợp cạnh trong sự kiện ajaxComplete. – redsquare