Yêu cầu thg 8 6, 2020 2:11 CH 1197 0 5
  • 1197 0 5
0

Cho mmình hỏi chút về Vuejs Cors

Chia sẻ
  • 1197 0 5

Mình đang có một ứng dụng viết bằng vuejs bình thường. Mình có gọi API từ một domain khác những cứ bị gp lỗi cors. Đã tìm google mà chưa thấy cách giải quyết. Mong các bạn có thể giúp mình với ạ

        methods: {
            submit () {
                axios.post(`https://xxx/api`)
                .then((res) => {
                    console.log(res);
                }).catch((err) => {
                    console.log(err.response);
                  });
            }
        }

5 CÂU TRẢ LỜI


Đã trả lời thg 8 7, 2020 4:34 SA
+1

CORS thì xử lý phía server chứ. API đang viết bằng ngôn ngữ và framwork gì

Chia sẻ
thg 2 6, 2:20 CH

mình dung java Springboot và Vue2 bạn ạ

Đã trả lời thg 8 7, 2020 7:26 SA
+1

Bạn cần add domain phía app chạy vuejs vào header của server API. Ví dụ nếu server API dùng Nginx thì bạn có thể add như sau vào config của Nginx:

add_header 'Access-Control-Allow-Origin' "<domain_client>" always;
Chia sẻ
Đã trả lời thg 8 6, 2020 2:20 CH
0

Nếu bạn có server backend của bạn thì bạn có thể xử lý call API từ domain khác lấy dữ liệu rồi sau đó từ app vue của bạn, bạn call api từ server của bạn vừa xử lý chứ không call trực tiếp API ở một domain khác ở frontend nữa

Chia sẻ
Đã trả lời thg 8 16, 2020 2:47 CH
0

Khi browser tạo XHR request tới API ở domain khác thì request sẽ bị trình duyệt block nhằm tránh các đoạn JS giả mạo.

Khi đang develop thì bạn có thể cài extension https://chrome.google.com/webstore/detail/moesif-origin-cors-change/digfbfaphojjndkpccljibejjbppifbc để browser không block XHR request. Tuy nhiên, khi deploy lên production thì server của bạn cần whitelist cho domain có chạy Vue.js bằng cách response kèm header:

Access-Control-Allow-Origin: https://foo.example

Với foo.example là domain của website chạy ứng dụng Vue.js của bạn.

Bạn nên đọc thêm về nó để hiểu hơn nhé https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS.

Chia sẻ
Avatar Vincent Vũ @uvcudlco
thg 9 7, 2020 11:07 SA

Nếu bạn không có quyền access hoặc không có kinh nghiệm update header phía backend hoặc chỉ muốn test thì có thể dùng nhưng proxy trung gian như https://cors-anywhere.herokuapp.com/ để bypass nhé

Đã trả lời thg 2 6, 2:20 CH
0

Mình cũng đang bị 1 vấn đề y hệt, ai có giải pháp gì hay không?

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí