0

rest API를 사용하는 backbone.js 응용 프로그램이 있습니다. 사용자/패스가 요청할 때마다 을 API에 보내야합니다. 다음은 요청을 보내는 방법입니다.IE8/9에서 node.js 프록시로 사용자/패스 전송

`Backbone.BasicAuth.set (tempUser, tempPass);

this.fetch({ 
     error: function(){ 
      // code 
     }, 
     success:function(model, response){    
      // code     
     }});` 

그래서 우리는 Node.js를 서버를 만들어 모든 요청을 차단합니다 우리가 프록시 서버를 만든 노드 HTTP 프록시 모듈을 사용하여 IE 8/9 위해 작동하지 않았다.

노드 프록시 서버입니다 :

`var httpProxy = require('http-proxy'); 
var options = {'target': { 
    'host': 'test.someserver.com', 
    'port': 8800 
}}; 

httpProxy.createServer(function(req, res, proxy) { 
    req.headers.host = 'test.someserver.com'; 
    proxy.proxyRequest(req, res, options); 
}).listen('8080');` 
우리의 문제는 이제/사용자를 보낼 노드 프록시 서버에 전달하는 것입니다

, 우리는 XDomainRequest 사용자 정의 헤더를 지원하지 않습니다 그리고 우리가 좋아하지 않는 것을 알고있다 사용자/패스를 쿼리 문자열로 보냅니다 (보안되지 않음).

사용자/패스를 IE 8/9에서 노드 프록시 서버로 보낼 수있는 방법이 있습니까?

답변

1

예, 실제로이 작업을 수행 할 라이브러리를 작성했습니다.

https://github.com/victorquinn/Backbone.CrossDomain

은 오히려 XMLHttpRequest 객체보다 IE의 XDomainRequest 객체를 사용 IE7/8/9 드롭 Backbone.sync에 대한 여분() 그래서 모든 요청의 역할을한다. 주요 아이디어는 모델 코드를 변경하지 않아도되지만 sync()를 지원하는 모든 것이 이전에는 불가능할 때만 작동한다는 것입니다.

해당 라이브러리를 사용하는 중에 문제가 발생하면 언제든지 저에게 연락하십시오.

또 다른 옵션은 백본 응용 프로그램과 동일한 도메인에 프록시 서버를 두는 것입니다 (XDomainRequest 개체를 사용할 필요가 없어짐). 그러나 여기에는 옵션이없는 것 같습니다.

관련 문제