>  기사  >  웹 프론트엔드  >  Mock.JS는 HTTP 요청 인스턴스 분석을 가로챕니다.

Mock.JS는 HTTP 요청 인스턴스 분석을 가로챕니다.

小云云
小云云원래의
2018-03-06 14:45:414230검색


MockJS는 HTTP 요청 및 응답을 시뮬레이션하기 위한 비교적 일반적인 프런트 엔드 도구로, 다양한 HTTP 요청을 시뮬레이션하고 결과를 반환할 수 있습니다. 백엔드 없이 백엔드 인터페이스의 프런트엔드 시뮬레이션을 실현합니다. Mock의 기본 사용법도 상대적으로 간단합니다. 이 기사에서는 모든 사람에게 도움이 되기를 바라며 주로 Mock.JS의 HTTP 요청 가로채기 분석을 공유합니다.

그러나 MockJS가 도입되면

import Mock from 'mockjs'

는 Mock 시뮬레이션을 활성화하기 위해 Mock.mock를 사용하는지 여부에 관계없이 프런트 엔드에서 보낸 모든 HTTP 요청을 가로채게 됩니다. Mock.mock开启Mock仿真,都会拦截HTTP请求。
这也就是为何,就算不Mock.mock也会后端无法获取前端HTTP请求的原因。

因此,一旦引用mockjs的情况下,无法通过前端发出HTTP请求,而会被mockjs拦截

需要在npm run build之前,先去除对于mockjs的引用。

Dev环境和Release环境下Mock的引用

import global from '../src/common/global';if (global.env === 'dev'){    var Mock = require('mockjs');
}if (global.env === 'dev'){    //Run MOCK 
    for (let mockData of mockDatas){        //console.log(mockData);
        Mock.mock(mockData.url, mockData.data);
    }
}

仅在Dev开发环境下global.env === 'dev',引入Mockjs,以免在release的版本中,真正的HTTP请求被拦截。

此处的global为自定义的全局config变量,而不是全局变量。

Mock.JS拦截HTTP请求的问题

MockJS是一种比较通用的前端模拟HTTP请求及回复的工具,能够仿真处各类HTTP的请求及返回结果。实现在无后端的情况下,前端对于后端接口的仿真。Mock的基础使用也是比较简单:Mock.JS官网
但,在引入MockJS时,

import Mock from 'mockjs'

会拦截所有前端发出的HTTP请求,无论是否使用Mock.mock开启Mock仿真,都会拦截HTTP请求。
这也就是为何,就算不Mock.mock也会后端无法获取前端HTTP请求的原因。

因此,一旦引用mockjs的情况下,无法通过前端发出HTTP请求,而会被mockjs拦截

需要在npm run build之前,先去除对于mockjs的引用。

Dev环境和Release环境下Mock的引用

import global from '../src/common/global';if (global.env === 'dev'){    var Mock = require('mockjs');
}if (global.env === 'dev'){    //Run MOCK 
    for (let mockData of mockDatas){        //console.log(mockData);
        Mock.mock(mockData.url, mockData.data);
    }
}

仅在Dev开发环境下global.env === 'dev',引入Mockjs,以免在release的版本中,真正的HTTP请求被拦截。

此处的global이것이 Mock.mock을 사용하지 않더라도 백엔드가 프런트엔드 HTTP 요청을 얻을 수 없는 이유입니다.

따라서 mockjs가 참조되면 프런트 엔드를 통해 HTTP 요청을 할 수 없고 mockjs에 의해 가로채게 됩니다.

npm run build 전에 mockjs를 제거해야 합니다. 소환.

개발 환경 및 릴리스 환경의 Mock 참조

rrreee개발 환경 global.env === 'dev'에서만 Mockjs를 도입하여 버전 출시를 방지하세요. HTTP 요청이 차단되었습니다.

여기서 global은 전역 변수가 아닌 사용자 정의 전역 구성 변수입니다.

Mock.JS가 HTTP 요청을 가로채는 문제

MockJS는 HTTP 요청과 응답을 시뮬레이션하는 비교적 일반적인 프런트 엔드 도구로 다양한 HTTP 요청과 반환 결과를 시뮬레이션할 수 있습니다. 백엔드 없이 백엔드 인터페이스의 프런트엔드 시뮬레이션을 실현합니다. Mock의 기본 사용법도 비교적 간단합니다. Mock.JS 공식 웹사이트

그러나 MockJS가 도입되면

rrreeeMock.mock 코드> 사용 여부에 관계없이 프런트 엔드에서 보낸 모든 HTTP 요청을 가로챕니다. code>를 사용하여 모의 시뮬레이션을 활성화합니다. 이것이 Mock.mock을 사용하지 않더라도 백엔드가 프런트엔드 HTTP 요청을 얻을 수 없는 이유입니다.

🎜따라서 mockjs가 참조되면 프런트 엔드를 통해 HTTP 요청을 할 수 없고 mockjs에 의해 가로채게 됩니다.🎜🎜npm run build 전에 mockjs를 제거해야 합니다. 소환. 🎜

개발 환경 및 릴리스 환경의 Mock 참조

rrreee🎜개발 환경 global.env === 'dev'에서만 Mockjs를 도입하여 버전 출시를 방지하세요. HTTP 요청이 차단되었습니다. 🎜🎜여기서 global은 전역 변수가 아닌 사용자 정의 전역 구성 변수입니다. 🎜🎜관련 권장 사항: 🎜🎜🎜mock.js를 사용하여 프런트엔드 개발과 백엔드를 독립적으로 만듭니다🎜🎜🎜🎜mock.js 임의의 데이터를 사용하고 Express를 사용하여 json 인터페이스 예제 튜토리얼을 출력합니다🎜🎜🎜🎜Mock.js 사용 Node.js 서버 환경 AJAX 요청 가로채기에 대한 튜토리얼🎜🎜

위 내용은 Mock.JS는 HTTP 요청 인스턴스 분석을 가로챕니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.