2011-08-22 9 views
2

많은 아약스 상호 작용을 사용하는 사이트를 설정 중입니다. 지금 진행중인 작업의 기본 흐름은 데이터가 클라이언트 측과 서버 측에서 모두 유효한지 여부이며, 데이터가 올바른 경우 AJAX 게시물과 응답은 다음 페이지로 이동할 URL이됩니다.클라이언트 측 리디렉션 질문

URL 클라이언트 쪽을 수신 할 때 현재 리디렉션을 수행하기 위해 window.location = url을 사용 중입니다.

어떤 이유로이 문제에 대한 설명이 잘못되었습니다. 특히 다양한 오픈 소스 프로젝트를 살펴보면 거의 볼 수 없습니다. 나는 내가 위에 기술하고있는 상호 작용이 맞는지, 그것이 아닌지, 내가 현재의 설계를 수정하기 위해 다르게 할 수 있는지 궁금해한다.

+0

이 접근법에 아무런 문제가 없습니다. –

답변

1

당신이하고있는 일은 완전히 잘되고 사람들이 취하는 일반적인 접근법입니다. 명심해야 할 무언가가 당신의 게시물을 아약스 요청에 실패를 어떤 이유로 실패했거나 있었다됩니다 실패한 요청을 처리 할 방법 등등

이 흥미로운 그래서 질문이었고 표시된 답변을 읽어

: How to manage a redirect request after a jQuery Ajax call

희망이 도움 됨

1

이것은 모든 상호 작용에 대한 전체 페이지로드를 피하고 대역폭 사용을 제한하고 응답 성이 향상되었습니다.

디자인 할 때 각 상호 작용에는 두 가지 요청이 필요합니다. 하나는 데이터의 유효성을 검사하고 두 번째 요청은 다음 전체 페이지를로드하는 것입니다. AJAX를 완전히 피하는 것이 더 효율적일 것입니다. 확실히 더 효율적입니다. 유효성 검사가 실패한 경우 오류 응답을 반환하지 않는 이유와 유효성 검사가 성공하면 게시물 이후에 표시되어야하는 내용에 대한 성공 응답을 반환하는 것이 좋습니다.

+0

일부 페이지는 리디렉션을 통해로드되지 않고 일부는 수동으로 HTML을 반환하고 DOM에 삽입합니다. 내가 아는 것보다 더 많은 아약스를 사용하고 대신 오버 헤드를 피하기 위해 전통적인 HTTP 포스트를 사용해야한다. – josephmisiti

1

리디렉션을위한 가장 좋은 방법은 기본적으로 서버가이 페이지에 액세스 할 수 있는지 여부와 헤더에서 응답 302 리디렉션을 알 수 있거나 페이지 자체를 반환 할 수 있는지 알고 있기 때문입니다. 서버는 AJAX가 보안에 대해 걱정하지 않고 페이지에서 상호 작용을 처리해야하는 페이지에 대한 요청을 승인합니다.

어쨌든 보안에 대해 신경 쓰지 않는다면 window.location은 문제가 없습니다.

+0

왜 window.location이 보안 위반입니까? – josephmisiti

+0

그렇지 않습니다. 내 말은 서버에서 데이터에 대한 액세스를 제어하고 AJAX에 의한 콘텐츠에 대한 액세스를 검증하는 대신 양식을 리디렉션해야한다는 것입니다. 보안 문제는 사용자가 JS를 쉽게 비활성화 할 수 있기 때문에 페이지를 볼 수있는 동안 리다이렉트되지 않는다는 것입니다. – Michael