tôi là tạo ra một ứng dụng tìm kiếm trong angularjs với các thiết lập này:Thay thế cho việc sử dụng các hashbangs trong url để giải quyết vấn đề IE9
App Config:
app.config(
[
'$locationProvider',
function ($locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false,
rewriteLinks: false
});
}
]
);
Vấn đề không phải là ứng dụng riêng của mình nhưng khi im cố gắng truy cập vào trang với IE9 im thì không thể truy cập vào nó. Sau khi đọc xong, tôi phát hiện ra rằng IE9 bỏ qua mọi thứ xuất hiện sau số # trong url và chuyển hướng người dùng trở lại url máy chủ (mọi thứ trướC# trong url) Và dự phòng tiêu chuẩn cho html5mode là chế độ bămbang. Angular docs for $location
Câu hỏi của tôi là nếu có ai biết nếu có bất kỳ cách nào xung quanh việc sử dụng hashbangs trong url hoặc nếu bất kỳ ai khác có vấn đề này. Nếu cần thêm tài liệu, vui lòng cho tôi biết và tôi sẽ cung cấp!
EDIT: Đây là bên trong bộ điều khiển:
$scope.$on('$locationChangeSuccess', function() {;
$scope.searchQuery = $location.search()['q'];
$scope.search();
});
EDIT: "!" Thêm $locationProvider.hashPrefix('!');
sẽ không làm việc bởi vì nó sẽ chỉ làm tăng thêm một sau "#" trong url.
Xem hình ảnh từ tài liệu góc:
"Sau khi thực hiện đọc som tôi phát hiện ra IE9 bỏ qua mọi thứ xuất hiện sau số # trong url và chuyển hướng người dùng trở lại url máy chủ ". Thats cách băm trong URL hoạt động. Góc hoạt động bằng cách lấy nó và phân tích nó thành một url có thể sử dụng nội bộ. –
Vì vậy, vấn đề là gì? Tại sao bạn không thể truy cập nó trong IE9? Bạn có thực hiện bất kỳ khắc phục sự cố nào không? Dự phòng là chính xác, như chúng ta có thể thấy tại tài liệu. – falsarella