Vue에서 도메인 간 요청을 만드는 방법은 무엇입니까?
Vue는 최신 웹 애플리케이션을 구축하는 데 널리 사용되는 JavaScript 프레임워크입니다. Vue를 사용하여 애플리케이션을 개발할 때 종종 다른 서버에 있는 다양한 API와 상호 작용해야 하는 경우가 있습니다. 도메인 간 보안 정책 제한으로 인해 Vue 애플리케이션이 하나의 도메인 이름에서 실행 중인 경우 다른 도메인 이름의 API와 직접 통신할 수 없습니다. 이 기사에서는 Vue에서 도메인 간 요청을 수행하는 몇 가지 방법을 소개합니다.
1. 프록시 사용
일반적인 도메인 간 솔루션은 프록시를 사용하는 것입니다. 이 경우 Vue 애플리케이션은 동일한 서버에 HTTP 요청을 하여 브라우저의 동일 출처 정책을 우회합니다. 서버는 요청을 수신하여 실제 API로 전달합니다. 프록시 서버는 API와 동일한 도메인에 있으므로 브라우저는 이에 대한 도메인 간 보안 제한을 발행하지 않습니다. 다음은 프록시 설정 방법의 예입니다.
// vue.config.js module.exports = { devServer: { proxy: { '/api': { target: 'https://example.com', changeOrigin: true, pathRewrite: { '^/api': '' } } } } }
위의 예에서는 /api
로 시작하는 모든 요청을 https://example.com</code로 프록시합니다. > . 소스를 <code>target
의 주소로 설정하려면 changeOrigin
을 true
로 설정하고, pathRewrite
를 설정하면 를 변경합니다. >/ api
가 요청에서 제거됩니다. /api
开头的请求代理到https://example.com
上。changeOrigin
设置为true
表示将源设置为target
的地址,并设置pathRewrite
以将/api
从请求中删除。
2. JSONP(仅限GET请求)
JSONP是一种旧的跨域解决方案,它使用GET请求在不同的域上动态添加一个<script>
标签。通过将callback函数名作为参数传递,服务器可以将JSON数据包裹在回调函数中返回给客户端。由于脚本源不受同源策略的影响,因此浏览器不会限制从不同域返回的脚本。该方法仅适用于GET请求,因为它没有请求主体。
以下是JSONP的示例:
export default { getData() { return new Promise((resolve, reject) => { const script = document.createElement('script'); const url = 'https://example.com/data?callback=getdata'; script.src = url; document.head.appendChild(script); window.getdata = (data) => { document.head.removeChild(script); delete window.getdata; resolve(data); } }); } }
在上面的示例中,我们使用Promise来封装JSONP的请求,创建一个<script>
标签并将其添加到document.head
中。当服务器返回数据时,将回调函数的名称设置为window.getdata
,在回调函数中删除<script>
标签,并将数据传递给resolve
回调。
3. CORS
跨域资源共享(CORS)是一种现代的跨域解决方案,它允许服务器指定哪些来源(域名)有权限访问API。服务器通过返回特定的响应标头来实现此目的。当浏览器发出跨域请求时,它会在预检请求中请求服务器访问控制响应头来验证是否允许请求。如果API返回此响应头,浏览器将允许跨域请求。
以下是一个CORS的示例:
export default { getData() { return fetch('https://example.com/data', { method: 'GET', mode: 'cors', headers: { 'Access-Control-Allow-Origin': '*' } }) .then(response => response.json()) .then(data => data); } }
在上面的示例中,我们使用fetch
函数来获取API数据,同时将mode
设置为cors
,以启用CORS。我们还在请求头中设置了Access-Control-Allow-Origin
<script>
태그를 동적으로 추가하는 오래된 도메인 간 솔루션입니다. 콜백 함수 이름을 매개변수로 전달하면 서버는 콜백 함수에 JSON 데이터를 래핑하여 클라이언트에 반환할 수 있습니다. 스크립트 소스는 동일 출처 정책의 영향을 받지 않으므로 브라우저는 다른 도메인에서 반환되는 스크립트를 제한하지 않습니다. 이 방법은 요청 본문이 없으므로 GET 요청에만 작동합니다. 다음은 JSONP의 예입니다. 🎜rrreee🎜위의 예에서는 Promise를 사용하여 JSONP 요청을 캡슐화하고 <script>
태그를 생성한 후 문서에 추가합니다. .머리
. 서버가 데이터를 반환하면 콜백 함수 이름을 window.getdata
로 설정하고 콜백 함수에서 <script>
태그를 제거한 후 데이터를 해결 콜백. 🎜🎜3. CORS🎜🎜CORS(교차 원본 리소스 공유)는 서버가 API에 액세스할 수 있는 권한이 있는 원본(도메인 이름)을 지정할 수 있는 최신 도메인 간 솔루션입니다. 서버는 특정 응답 헤더를 반환하여 이를 수행합니다. 브라우저가 원본 간 요청을 할 때 요청이 허용되는지 확인하기 위해 실행 전 요청의 서버 액세스 제어 응답 헤더를 요청합니다. API가 이 응답 헤더를 반환하면 브라우저는 교차 출처 요청을 허용합니다. 🎜🎜다음은 CORS의 예입니다. 🎜rrreee🎜위 예에서는 mode
를 로 설정하면서 <code>fetch
함수를 사용하여 API 데이터를 가져옵니다. cors 를 사용하여 CORS를 활성화합니다. 또한 요청 헤더에 Access-Control-Allow-Origin
헤더를 설정하여 모든 원본이 API에 액세스할 수 있도록 허용합니다. CORS가 제대로 작동하려면 서버가 응답에 이 헤더를 반환해야 합니다. 🎜🎜결론🎜🎜Vue의 교차 도메인 요청은 프록시, JSONP 및 CORS와 같은 다양한 방법을 사용할 수 있습니다. 각 방법에는 고유한 장점, 단점 및 적용 가능한 시나리오가 있습니다. 특정 솔루션을 사용하기로 선택할 때는 API 보안, 요청의 복잡성, 응답 속도를 고려하세요. 🎜위 내용은 Vue에서 도메인 간 요청을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML 템플릿의 버튼을 메소드에 바인딩하여 VUE 버튼에 함수를 추가 할 수 있습니다. 메소드를 정의하고 VUE 인스턴스에서 기능 로직을 작성하십시오.

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

vue.js에서 JS 파일을 참조하는 세 가지 방법이 있습니다. & lt; script & gt; 꼬리표;; mounted () 라이프 사이클 후크를 사용한 동적 가져 오기; Vuex State Management Library를 통해 수입.

vue.js의 시계 옵션을 사용하면 개발자가 특정 데이터의 변경 사항을들을 수 있습니다. 데이터가 변경되면 콜백 기능을 트리거하여 업데이트보기 또는 기타 작업을 수행합니다. 구성 옵션에는 즉시 콜백을 실행할지 여부와 DEEP를 지정하는 즉시 포함되며, 이는 객체 또는 어레이에 대한 변경 사항을 재귀 적으로 듣는 지 여부를 지정합니다.

vue.js는 이전 페이지로 돌아갈 수있는 네 가지 방법이 있습니다. $ router.go (-1) $ router.back () 사용 & lt; router-link to = & quot;/quot; Component Window.history.back () 및 메소드 선택은 장면에 따라 다릅니다.

VUE 멀티 페이지 개발은 vue.js 프레임 워크를 사용하여 응용 프로그램을 구축하는 방법입니다. 여기서 응용 프로그램은 별도의 페이지로 나뉩니다. 코드 유지 보수 : 응용 프로그램을 여러 페이지로 분할하면 코드를보다 쉽게 관리하고 유지 관리 할 수 있습니다. 모듈 식 : 각 페이지는 쉬운 재사용 및 교체를 위해 별도의 모듈로 사용할 수 있습니다. 간단한 라우팅 : 페이지 간의 탐색은 간단한 라우팅 구성을 통해 관리 할 수 있습니다. SEO 최적화 : 각 페이지에는 자체 URL이있어 SEO가 도움이됩니다.

VUE에서 DIV 요소를 점프하는 두 가지 방법이 있습니다. VUE 라우터를 사용하고 라우터 링크 구성 요소를 추가하십시오. @Click 이벤트 리스너를 추가하고 이것을 호출하십시오. $ router.push () 메소드를 점프하십시오.

vue.js의 Foreach 루프는 V-For 지시문을 사용하여 개발자가 각 요소를 배열 또는 객체에서 반복하고 각 요소에서 특정 작업을 수행 할 수 있습니다. 구문은 다음과 같습니다. & lt; template & gt; & lt; ul & gt; & lt; li v-for = & quot; 항목의 항목 & gt; {{item}} & lt;/li & gt; & lt;/ul & gt; & lt;/template & gt; & am
