2012-09-12 7 views
5

동일한 페이지로 301 리다이렉트를 수행하지만 끝에 슬래시가있는 서버 엔드 포인트에 대한 AJAX 호출이 있습니다.301 리디렉션 AJAX에서 리디렉션?

AJAX로 호출 할 때 브라우저가 리디렉션을 따르거나 무시합니까? 내 경우에는 그것들을 따르지는 않지만 서버 설정에서 뭔가 있을지도 모른다.

답변

4

jquery를 사용하는 경우 아래 질문을 통해 구현할 수 있습니다. 조금 늦게

How to manage a redirect request after a jQuery Ajax call

How to prevent ajax requests to follow redirects using jQuery

handle jquery ajax redirect

+1

OK jQuery가 리디렉션을 따르지 않습니다. 감사. –

+7

음, 아니. XHR은 투명하게 리디렉션을 따릅니다. –

+1

모든 경우에 해당되는 것은 아닙니다. 301 리디렉션 설정이 있고 FF가 해당 설정을 따르지 않습니다. 그러나 Chrome은 않습니다. – threejeez

3

어쩌면이 대답은하지만 난했다 : 기본 jQuery를 (그리고 아약스와 대부분의 도서관) 을 따르지 않는하여 기본적으로 리디렉션 ajax 요청에 대한 301 응답과 동일한 문제. 이 솔루션은 매우 간단했다 :

RewriteRule ^([^/]\w+)/?$ index.php?%{QUERY_STRING} [L,E=MODULE:$1] 

귀하의 XHR-요청 URL은 다음과 같이가 someting를 보이는 :

/this/is/a/canonical/url + '?param=1&param=2...' 

301 영구적으로 이동하기가 이어질 것

아파치 재 작성 규칙이 같은 것입니다 직접 파일 호출 (fi * .php)을 사용하지 않고 정식 URL (fi * .php가없는 디렉토리 경로처럼 보임)로 다시 작성하는 경우

이 문제가 단지이처럼 XHR-요청 - URL에/a를 해결하려면

/this/is/a/canonical/url + '/' + '?param=1&param=2...' 

어쩌면이 사람을 도움이 될 것입니다.

+0

이 문제가 해결되었습니다. 감사합니다. –

-1

jQuery의 API 문서 (http://api.jquery.com/jQuery.ajax/)에 따르면 async:false (일명 동기화 모드)은 도메인 간 및 dataType: "jsonp" 요청을 지원하지 않습니다.

+2

죄송합니다. 그러나이 질문과 관련이 있습니까? –

+0

@EduardLuca 죄송합니다. 리디렉션이 도메인을 넘지 않습니다. – GlacJAY

+0

다른 도메인으로 넘어갈 필요가 없습니다. 리디렉션은 같은 URL이지만 후행 슬래시가 있습니다. –

2

나는 또한이 문제를 가지고 있었고 후행 슬래시에 대한 제안은 저를 생각하게 만들었습니다 ... 저의 Web.Config에서 모든 것을 소문자로 만드는 재 작성 규칙을 가지고 있었고 이것이 저의 AJAX 호출을 엉망으로 만든 것입니다. GetResults (301로 나타남)와 내 rewriter (일부 알 수없는 이유가 있습니까?)에 POST를 수행하여 결과가 404 인 결과를 얻는 소문자 getresults GET으로 변경했습니다.

희망이 있으면 다른 사람에게 도움이 될 수 있습니다.