http 스키마의 페이지에서 https url (도메인 및 응용 프로그램이 동일 함)으로 보내고 있습니다. 내가 MVC 3에게 아약스 도우미 사용 : 나는 형식을 사용하는 응용 프로그램에서http : // https (동일한 도메인)에서 ajax 게시에 양식 인증 쿠키가 전송되지 않음
@using (Ajax.BeginForm(MVC.Payment.Confirm(), new AjaxOptions
{
HttpMethod = "Post",
UpdateTargetId = "myId",
InsertionMode = InsertionMode.Replace,
OnBegin = "$('#popupAjaxLoader').show();",
OnSuccess = "$('#popupAjaxLoader').hide();",
Url = "https://same.domain/payment/confirm"
}, new { @action = "https://same.domain.com/payment/confirm" }))
{
...
}
을 인증 :
양식을 제출 중 때이 인증 쿠키가 서버로 전송되지 않습니다 것을 볼 수 있습니다 방화범<forms loginUrl="~/Account/LogOn" timeout="2880" name="MYCOOKIENAME" />
, 정도 처리기가 실패합니다 (요청을 승인해야 함). Ajax.BegiForm에 인증 쿠키를 첨부하려면 어떻게해야합니까?
UPDATE : 그것은 아약스 요청에서 다시 정보를 수신 할 필요가없는 경우 counsellorben에 의해 주어진 솔루션이 작동하는지 밝혀졌다
. HTTP에서 HTTPS로 Ajax POST를 보내면 쿠키가 첨부되지 않으므로 필요한 모든 데이터를 숨겨진 양식 필드로 POST해야합니다. 그러나 같은 원본 정책으로 인해 서버 응답에 javascript에 액세스 할 수 없습니다. 결국 아약스를 포기하고이 문제에 대한 궁극적 인 해결책 인 HTTPS URL을 참조하는 iframe 내부에 양식을 배치해야했습니다.
그래도 해결 방법이 있습니까? 폼에 입력 된 중요한 데이터가 포함되어 있기 때문에이 Ajax POST 요청이 안전해야하지만 Ajax 스크립트가 실행되는 페이지는 일반 페이지입니다. https로 전환하면 전체 포털이 HTTPS에서 작동해야합니다. 내가 바라는 게 아니야. – PanJanek
응답을 편집 할 당시 양식 인증 쿠키에 의존하지 않고 자체 인증을 구현하는 거의 동일한 솔루션을 코딩하기 시작했습니다. 그것은 가장 깨끗한 해결책 인 것처럼 보인다. 감사! – PanJanek
당신을 진심으로 환영합니다. 분명히 위대한 마음은 똑같이 생각합니다. – counsellorben