Nó đã được đề nghị để gửi ở đây từ ngăn xếp chồng lên nhau. Đây là hy vọng.
Có hai thành phần cho ứng dụng của tôi:
- DO 'Ứng dụng' lưu trữ trang web phản ứng. Trang web này yêu cầu:
- DO 'Giọt' lưu trữ API
Khi tôi cố gắng kết nối từ môi trường phát triển Droplet của mình, dữ liệu được trả về và ứng dụng phản ứng được triển khai cục bộ hiển thị dữ liệu.
Tuy nhiên, khi tôi triển khai ứng dụng phản ứng lên Ứng dụng DO và cố gắng thực hiện yêu cầu tương tự, tôi nhận được lỗi: Từ chối chưa được xử lý (TypeError): Không được phép yêu cầu tài nguyên
. Bảng điều khiển trình duyệt cung cấp những điều sau đây.
Không được phép yêu cầu tài nguyên
Tìm nạp API không thể tải http://xxx.xxx.xxx.xxx:8080/search/ do kiểm tra kiểm soát truy cập
Từ chối lời hứa chưa được xử lý: TypeError: Không được phép yêu cầu tài nguyên.
Tôi đã thử cả IP công khai cho Droplet lưu trữ API cũng như IP riêng. Sự cố tương tự xảy ra khi ứng dụng được triển khai trên ứng dụng DO.
Lỗi
Tôi có thể tìm những khu vực nào có thể có vấn đề?
const fetchReferences = async() => {
tìm nạp(âhttp://xxx.xxx.xxx.xxx:8080/search/â, {. //đây là dòng có lỗi.
phương thức: âPOSTâ,
nội dung: JSON.opesify ({
url: searchState.searchCriteria
Trên API python, tôi cho phép mọi thứ thông qua:
ứng dụng = Bình (tên)
CORS(ứng dụng, tài nguyên={r"/â: {"originsâ: ââ}})
api = Api(ứng dụng)
trình phân tích cú pháp = reqparse.RequestParser()
ghi nhật ký
Nhật ký đầu ra API của người giới thiệu
Nhật ký lỗi API Refgator
Vấn đề về CORS?
Cho nên...
Tại sao một phiên bản của trang web được tải cục bộ bằng sợi kết nối thành công với giọt?
Tôi nghi ngờ rằng điều này có thể là do có các khóa được chia sẻ với Droplet lưu trữ API.
Tại sao một phiên bản của trang web được tải trên nền tảng Ứng dụng DO kết nối không thành công với giọt?
Tôi đã thấy các bài đăng liên quan đến sự cố CORS giữa các giọt và ứng dụng được lưu trữ trên Digital Ocean. Nhìn thấy đây và đây.
Kiến thức của tôi về CORS không tồn tại nên việc xác nhận điều này cực kỳ tốn thời gian.
Có thể tốt nhất là chuyển repo trở lại bitbucket và cố gắng sử dụng một giọt thay vì một ứng dụng.