2013-01-10 4 views
2

json 응답과 쿠키를 다시 보내는 웹 서비스 someWebServiceOnServer가 있습니다.쿠키가 Sencha Touch 2에 저장되지 않았습니다.

{"IsAuth":true,"Message":"","UserName":"guest"}

을 내가 페이지 리소스 검사하는 경우 -> 쿠키, 나는 쿠키 세트를 참조하십시오 나는 브라우저를 통해이 URL을 명중하면, 나는 다음을 참조하십시오. 다음과 같이

지금 내 센차 터치 2 응용 프로그램에서, 나는 아약스 호출을하고 예상대로이 실행에

Ext.Ajax.request({
url: 'someWebServiceOnServer',
useDefaultXhrHeader: false,
callback: function(options, success, response) {
console.log(response.responseText)
},
});

, 내가 JSON 응답을 얻을. 그러나 쿠키가 설정되지 않았습니다. 또한 응답 헤더에서 쿠키를 찾을 수 없습니다. 왜 이런 일이 생길까요?

참고 : CORS가 서버에 구현되었으며 응용 프로그램에서이 서비스에 액세스 할 수 있습니다. withCredentials: true,은 오류 XMLHttpRequest cannot load . Cannot use wildcard in Access-Control-Allow-Origin when credentials flag is true.을 던 졌으므로 사용하지 않았습니다.

브라우저에서 쿠키를 사용할 수 있습니다.

이후 쿠키를 보내서이 쿠키 정보를 다시 서버로 보낼 것이므로 쿠키가 필요합니다.

+0

문제가 해결 되었습니까? 예, 솔루션을 공유 할 수 있습니까? – ThinkFloyd

+0

안녕하세요. 동일한 문제가 있습니다. 솔루션을 제안 해주세요. 많은 감사합니다! – GibboK

+0

이것 좀 봐 http://stackoverflow.com/questions/11616523/cookie-not-saved-in-sencha-touch-2-application?answertab=active#tab-top 기본적으로'withCredentials : true, useDefaultXhrHeader : false입니다. ' – ThinkFloyd

답변

2

시험해보기 :

다음 헤더를 서버 응답에 추가하십시오.

Access-Control-Allow-Origin: http://clientdomain.com
Access-Control-Allow-Credentials: true

그리고 Ajax 요청에 withCredentials: true을 추가합니다.

<system.webServer> 
      <httpProtocol> 
      <customHeaders> 
       <add name="Access-Control-Allow-Origin" value="http://localhost" /> 
       <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" /> 
       <add name="Access-Control-Allow-Credentials" value="true" /> 
      </customHeaders> 
      </httpProtocol> 
     </system.webServer> 

그리고 Ext.JS에서

이러한 매개 변수를 사용하여 요청 :

2

의 ExtJS 요청과 IIS WCF 들어있는 Web.config이 적용. (예를 들어, 로컬 호스트 그래서 로컬 SenchaTouch의 packagedr 또는 폰갭 통해 예를 들면 애플리케이션을 호스팅) :

disableCaching: true, 
useDefaultXhrHeader: false, 
withCredentials: true 

이 차례로 Ext.ajax.request는 쿠키를 사용합니다.

관련 문제