Error Uncaught TypeError: Failed to construct 'URL': Invalid URL By a[href="//...]
Sử dụng Trim URLs biến https:// hoặc http:// thành // thì gặp phải lỗi javascipt : Uncaught TypeError: Failed to construct 'URL': Invalid URL
Mặc định mã trong javascript :
$(document).on('click', '#ajax-filters-form .pagination a', function (e) {
e.preventDefault();
var url = new URL($(e.currentTarget).attr('href'));
var page = url.searchParams.get('page');
$('#ajax-filters-form input[name=page]').val(page)
$('#ajax-filters-form').trigger('submit');
});
Còn nội dung html :
<ul class="pagination">
<li aria-disabled="true" aria-label="« Previous" class="page-item disabled"><span aria-hidden="true" class="page-link">‹</span>
</li>
<li aria-current="page" class="page-item active"><span class="page-link">1</span>
</li>
<li class="page-item"><a href="//domain.com?page=2" class="page-link">2</a>
</li>
<li class="page-item"><a href="//domain.com?page=2" rel="next" aria-label="Next »" class="page-link">›</a>
</li>
</ul>
Click mouse page 2 thì gặp lỗi : Uncaught TypeError: Failed to construct 'URL': Invalid URL
Nếu tắt Trim URLs thì link thế này sẽ không lỗi < a href="https://domain.com?page=2"
Mong A/E giúp đỡ. Xin cảm ơn
1 CÂU TRẢ LỜI
method new URL thì đầu vào là 1 string với format là 1 url => bạn nên đọc document (https://developer.mozilla.org/en-US/docs/Web/API/URL/URL) của menthod đó.
Mình nghĩ khi click thì url get được ko phải là 1 chuỗi với format của 1 url. thử code lại xem. new URL(url, window.location.origin)
Theo bạn : new URL(url, window.location.origin) mọi thứ ổn . Thanks