Lỗi không lấy được API Access to XMLHttpRequest at ... No 'Access-Control-Allow-Origin' header is present on the requested resource

Hi,

Bạn nào có thể giải thích giúp ko ? trong reactjs mình gặp lỗi này khi lấy dữ liệu api.

Access to XMLHttpRequest at ‘https://dev.ghtk.vn/services/shipment/fee?address=P.503%20tòa%20nhà%20Auu%20Việt,%20số%201%20Lê%20Đức%20Thọ&province=Hà%20Nội&district=Quận%20Cầu%20Giấy&pick_province=Hà%20Nội&pick_district=Quận%20Hai%20Bà%20Trưng&weight=1000’ from origin ‘http://localhost:3005’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

code:

axios.post( url, {}, {
      headers: {
        "Access-Control-Allow-Origin": "*",
        "Content-Type": "application/json",
        "Token": Constants.API_GHTK.API_TOKEN_KEY,
        "X-Requested-With": "XMLHttpRequest",
        // "Host": "dev.ghtk.vn"
      },
      
      "async": true,
      "crossDomain": true,
      
      }).then(function (response) {
        console.log('response is 5 : ' + response.data);
      }).catch(function (error) {
        if (error.response) {
          console.log("4:", error.response.headers);
        } 
        else if (error.request) {
            console.log("1: ", error.request);
        } 
        else {
          console.log("2: ", error.message);
        }
      console.log("3: ", error.config);
    });


  }

Đơn giản là server mà bạn gọi đến không trả về Access-Control-Allow-Origin header phù hợp thôi. Hỏi bên làm server nhé

4 Likes

Mình sử dụng postman lấy ok bạn. Mà code ko dc

postman là công cụ để test http request do đó nó sẽ không tuân thủ theo spec về security của trình duyệt. Tương tự nếu bạn dùng các thư viện http trên server cũng sẽ không tuân thủ theo spec này nên sẽ không có cái gọi là CORS. Lỗi này thì bạn hỏi bạn làm server để hỗ trợ nhé
Chi tiết bạn đọc ở đây nhé: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

5 Likes

@Thanh_An1 đã xử lý đc chưa bạn. Rồi thì chia sẻ kinh nghiệm cho mình với

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?