찾다

 >  Q&A  >  본문

angular.js - Angular1+gulp 项目使用 http-proxy-middleware 作代理的问题

打包完成后,浏览器打开了该链接:http://localhost:3000/#/register
完成注册功能时有post请求,如注册信息的提交,有get请求,如检查手机号是否已注册。
现在遇到的问题是get请求都能正常使用,post请求都不能正常使用。

如下,get请求是正常的,拿到了期望的结果。

如下,post请求不正常,原本是post请求,怎么代理时变成了 Request Method:OPTIONS ,然后就出错了。

附上代理相关的配置:

var browserSync = require('browser-sync').create();
var proxyMiddleware = require('http-proxy-middleware');

gulp.task('server', ['build'], function() {
    var middleware = proxyMiddleware('/d', {target: 'http://api.b.cn', changeOrigin: true});
    browserSync.init({
        server: {
            baseDir:dist,
            index: 'index.html',
            middleware: middleware
        }
    });
});
天蓬老师天蓬老师2743일 전872

모든 응답(2)나는 대답할 것이다

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 17:16:17

    초대해주셔서 감사합니다!
    교차 도메인 리소스 공유 표준은 서버가 어떤 원본 사이트가 어떤 리소스에 액세스할 권한이 있는지 선언할 수 있도록 하는 새로운 HTTP 헤더 필드 세트를 추가합니다. 또한 사양에서는 서버 데이터에 부작용이 있을 수 있는 HTTP 요청 메서드(특히 GET 이외의 HTTP 요청 또는 특정 MIME 유형을 사용한 POST 요청)의 경우 브라우저가 먼저 OPTIONS 메서드를 사용하여 실행 전 요청을 시작해야 한다고 요구합니다. (실행 전 요청) 서버가 도메인 간 요청을 허용하는지 여부를 확인합니다. 서버는 권한을 확인한 후 실제 HTTP 요청을 시작합니다. 실행 전 요청이 반환되면 서버는 ID 자격 증명(쿠키 및 HTTP 인증 관련 데이터 포함)을 전달해야 하는지 여부를 클라이언트에 알릴 수도 있습니다.
    다음 기사를 자세히 읽어 보시기 바랍니다.

    • HTTP 액세스 제어

    문제를 해결하려면 다음 두 가지 방법이 있습니다.

    • CORS 교차 도메인 요청 헤더 추가

    • 개발에만 필요한 경우 Fiddler를 사용하여 CORS 도메인 간 요청 헤더를 설정할 수 있습니다. 최근 Chrome 아티팩트인 CORS Toggle을 발견했는데 매우 편리합니다.

    참조 자료

    • CORS 솔루션

    • 교차 도메인 문제, 솔루션 - CORS 솔루션

    • 당신이 모르는 교차 출처 리소스 공유(CORS)

    회신하다
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-15 17:16:17

    문제를 해결하셨나요? 저도 같은 문제가 발생했습니다

    회신하다
    0
  • 취소회신하다