Tôi đang cố gắng cho phép truy cập vào mọi tên miền phụ trên trang web của mình để cho phép các cuộc gọi AJAX tên miền phụ chéo. Có cách nào để xác định tất cả các tên miền phụ của một trang web như *.example.com
hoặc cách khác, tại sao sau đây không hoạt động khi tôi có nhiều hơn một miền được liệt kê:Chỉ định nhiều tên miền phụ có kiểm soát truy cập Xuất xứ
header('Access-Control-Allow-Origin: http://api.example.com http://www.example.com');
Tôi đã đọc qua những câu dưới đây mà dường như là tương tự , nếu không giống như cái này, khác với thực tế là tôi muốn truy cập vào các tên miền phụ và cái này đề cập đến các miền chung.
Access-Control-Allow-Origin Multiple Origin Domains?
Nếu câu hỏi trên là giải pháp cho vấn đề này, sau đó làm thế nào tôi có thể lấy nguồn gốc từ tiêu đề. Có vẻ như $ _SERVER ['HTTP_ORIGIN'] là rất không đáng tin cậy và thậm chí không qua trình duyệt. Tôi cần để có thể nhìn thấy nguồn gốc trong bất kỳ trình duyệt có thể hiển thị một lỗi khi cố gắng gửi một cuộc gọi AJAX bằng cách sử dụng javascript.
Như bạn đã nói, phần đầu tiên của câu hỏi của bạn được trả lời trong liên kết. Về câu hỏi thứ hai của bạn: nếu trình duyệt thử một cuộc gọi Ajax bị cấm bởi Chính sách tên miền chéo, yêu cầu sẽ không thành công và sẽ không đến được máy chủ. Lỗi sẽ phải được xử lý trong trình duyệt. –
Tôi biết rằng tôi sẽ nhận được lỗi, nhưng lỗi này sẽ được cung cấp sau khi cuộc gọi đã cố truy cập vào tệp bên ngoài. Nếu tập tin từ chối nó thì lỗi sẽ được ném. Nếu tôi đặt tiêu đề để cho phép truy cập vào tất cả thì nó sẽ hoạt động, nhưng điều này là quá mở cho tôi vì vậy tôi muốn thiết lập nó có liên quan đến nguồn gốc của yêu cầu. Vì vậy, tôi muốn biết làm thế nào để có được nguồn gốc của yêu cầu bằng cách sử dụng PHP. –
Bạn có thể giải thích về ý nghĩa của bạn bằng "$ _SERVER ['HTTP_ORIGIN'] không đáng tin cậy và thậm chí không duyệt qua trình duyệt"? $ _SERVER ['HTTP_ORIGIN'] là giá trị phía máy chủ không được thực hiện trong trình duyệt. – monsur