sourcecode

Axios GET이 Safari 브라우저에서 작동하지 않음

copyscript 2022. 7. 30. 18:17
반응형

Axios GET이 Safari 브라우저에서 작동하지 않음

vue 인스턴스에서 created()를 호출하는 단순한 메서드 getInfo() 요구가 있습니다.외부 API에서 데이터를 가져와 페이지에 렌더링합니다.

created() {
    this.getInfo();
},
methods: {
    getInfo() {
        let vm  = this;
        let url = [my api url];
        axios.get(url)
          .then(response => {   
              console.log(response);
          })
          .catch(error => {
              console.log(error);
          })
    },

이 방법은 Chrome에서는 완벽하게 작동하지만 Safari(High Sierra, 10.13.2)에서는 완전히 무시됩니다. 왜 이런 현상이 발생하는지 아십니까?콘솔 오류는 없습니다.

나는 만약 내가 더한다면/예를 들어, 엔드포인트 끝부분까지./users/대신/usersSafari에서 동작하고 있습니다.

OK는 이 문제를 해결할 수 있었습니다.아래 코드를 참조해 주세요.Axios 호출을 리팩터링하고 새로운 옵션을 추가했습니다.중요한 것은 캐시 버스터를 악시오스 호출의 URL에 추가하는 것입니다.Safari에서는 이 기능이 자동으로 실행되지 않습니다.여러분, 도와주셔서 감사합니다.

    getInfo: function () {
        let vm  = this;
        let url = let url = [my api url];

        axios({
            method: 'get',
            url: url + '?nocache=' + new Date().getTime(), // Safari fix
            withCredentials: true
        })
          .then(response => {
              console.log(response)
          })
          .catch(error => {
              console.log(error);
          })
    },

@Bert가 코멘트에서 언급했듯이 메서드숏컷은 아직 Safari 브라우저에서 지원되지 않습니다.

이런 거 해봐

created() {
    this.getInfo();
},
methods: {
    getInfo: () => {
        let vm  = this;
        let url = [my api url];
        axios.get(url)
          .then(response => {   
              console.log(response);
          })
          .catch(error => {
              console.log(error);
          })
    },

언급URL : https://stackoverflow.com/questions/47877808/axios-get-not-working-in-safari-browser

반응형