2011-08-08 3 views
0

양식이있는 웹 페이지 용 피라미드 앱이 있습니다. 양식의 POST 후에 window.location = XXX을 사용하고 있었지만 이것이 SEO 친화적이지 않다고 들었습니다.jQuery와 피라미드를 사용한 URL 리디렉션?

따라서 서버 쪽에서 리디렉션을 시도하고 있습니다. 내가 한 일은 mydomain.com/redirect의 피라미드 앱에보기를 추가하는 것입니다. 이 주소로가는 대상 페이지에 301를 반환

return HTTPMovedPermanently(location=location) 

지금, 내 웹 페이지에, 나는/리디렉션 페이지에 jQuery를 POST를 추가했다. 불 덩어리를 보면, 포스트는 실제로 일어난다, 그것은 301 등을 얻는다, 그리고 나의 브라우저는 목적지 페이지를 얻는다. 그러나 물리적으로 그것에 방향이 바뀌지 않는다 - 나는 무엇을 놓치고 있냐?

+0

가능하다면, 어떠한 리다이렉트 개조 재를 사용하는 데는 보통 302이다. – Calum

답변

0

jQuery는 3xx 응답을 받으면 브라우저를 리디렉션하지 않습니다. AJAX 요청의 리다이렉션만을 따르게됩니다. 그것은 XmlHttpRequest에 대한 표준적인 동작이며 변경 될 수 없다고 확신합니다.

JavaScript로 양식을 제출하거나 HTTP 리디렉션을 사용하거나 JavaScript를 사용하고 긍정적 인 응답을 받으면 window.location을 사용하십시오.

이런 종류의 일을하는 일반적인 방법은 클라이언트가 JavaScript를 먼저 가지고 있지 않다고 가정하는 것입니다. 그런 다음 모든 것이 JavaScript없이 작동하면 JavaScript를 추가하여 JavaScript가있는 사용자에게 더 나은 환경을 제공합니다.

즉, 양식 제출 후 클라이언트를 리디렉션하려는 경우 AJAX를 사용하지 않아도됩니다. 유효성을 검사 할 경우 양식이 유효 할 때까지 JavaScript에서 양식 제출을 방지 할 수 있습니다.

또한, 제출 양식 후 리디렉션 대한 상태 코드가없는 301

+0

답변 해 주셔서 감사합니다. 이것은 실제로 양식이 아닙니다. 저는 자동 완성 상자가 있습니다. 사용자가 값을 선택하면 해당 페이지로 리디렉션되어야합니다. 그러므로

atribute는 없습니다. 내가 뭘해야하지? 다시, 나는 그것을 사용하지 않을 수 있습니다 window.location 때문에 SEO 친화적 인 .. 어떻게 실제로 리디렉션 브라우저 말할 수 있습니까? – Aviv

+0

당신이 그것을하려는 의도대로해도, 그것은 어쨌든 친절한 SEO되지 않습니다. 크롤러는 자동 완성 상자에 내용을 입력하지 않습니다. window.location을 사용해야합니다. 당신이 당신의 위치가 SEO 친절하기 위하여 원하는 경우에, 다만 당신의 위치가 무능한 사람들에 의해 사용 된처럼 부호를 붙이십시오. 이 자동 완성 상자가 없으면 사이트의 모든 섹션에 액세스 할 수 있는지 확인하십시오. 어딘가에서 모든 섹션에 대한 링크가 있으면 크롤러가 페이지를 찾을 수 있고 장애인이 나를 사랑할 것입니다. –