2011-08-14 33 views
11

Tôi đang tạo tiện ích mở rộng của Chrome để lấy dữ liệu từ máy chủ của riêng tôi. Nó sử dụng khoảng 4 httpRequests cùng một lúc, nhưng đôi khi tôi gặp lỗi giao diện điều khiển như sau:Access-Control-Allow-Origin trên tiện ích mở rộng chrome

XMLHttpRequest cannot load http://apps.radionsm.lv/apps/system/index.php?request=now. Origin chrome-extension://egkddfmbidfobhchndockbhjancbpfkd is not allowed by Access-Control-Allow-Origin. cho mọi người đôi khi không.

Nếu tôi gửi header('Access-Control-Allow-Origin: *'); điều này có khắc phục được không?

Trả lời

18

Chrome Extensions có hai "chế độ" khi thực hiện các yêu cầu XHR cross-domain:

1) Nếu tên miền là trong "điều khoản" của file manifest.json - Các yêu cầu không có một " Xuất xứ ", và nó luôn thành công.

2) Nếu miền không nằm trong "quyền" - Yêu cầu bao gồm tiêu đề "Gốc" có giá trị "chrome-extension: // ..." Điều này cho biết yêu cầu là yêu cầu CORS và phản hồi phải có tiêu đề Access-Control-Allow-Origin hợp lệ để thành công.

25

Bạn đang cố gắng chia sẻ nguồn gốc chéo (CORS). Tin xấu là không có một máy chủ như một người đàn ông trung gian không có cách nào để làm điều này trên một trang web bình thường. Tin vui là trong tiện ích mở rộng của chrome, bạn có thể yêu cầu quyền truy cập vào bất kỳ url nào bạn muốn. Chỉ cần đặt một cái gì đó như thế này trong tệp manifest.json của bạn.

Cho phép kết nối đến trang web của bạn:

"permissions": [ 
    "http://*.radionsm.lv/" 
    ], 

Cho phép kết nối với bất kỳ trang web:

"permissions": [ 
    "http://*/" 
    ], 

Khi người dùng cài đặt chrome mở rộng của bạn sẽ thông báo cho họ về các điều khoản cần thiết trong một hộp thoại trước hoàn thành việc cài đặt.

+9

Đáng nói đến - Tôi phải xóa và cài đặt lại tiện ích mở rộng để các quyền được cập nhật từ tệp kê khai. –

+1

Tôi upvoted bình luận của Geva Tal ở đây, và muốn nhấn mạnh thêm rằng bạn thực sự phải gỡ bỏ phần mở rộng của bạn và sau đó cài đặt lại nó. Chỉ cần tải lại tiện ích mở rộng từ bên trong Chrome là không đủ. – erikprice

Các vấn đề liên quan