URL을 업데이트하려면 301/302를 클릭하십시오.

3795 단어 jquery-pjax
pjax 요청은 301/302의 방향을 바꿔서는 안 됩니다. 이것은 pjax의 관점에 어긋나기 때문입니다.
당신은 어떤 용례를 원합니까?

묘사

서버에서 pjax의 방향을 바꾸는 등효 방법은 HTML 세션으로 응답하는 것이지만

토론 #1

응답 헤더는 브라우저가 업데이트할 URL로 설정하여 pjax가 요청한 URL과 다르지 않도록 합니다.

토론 #2

최종 사용X-PJAX-URL으로 URL을 업데이트하는 게 어때요?

토론 #셋

2014년 10월 14일 화요일 오후 3:21, Maxime [email protected]
쓰기:

What about eventually updating the url using ?

Probably not. That doesn't seem like the intended use of rel=canonical. The canonical reference is to indicate to the user agent or a bot that "Hey, altough this document is at the current URL, its main representation is on this other URL. Just so you know."

<link rel="canonical">

What use case do you have in mind?


우리는 지금 한 응용 프로그램에서 같은 문제에 부딪혔다.예:
사용자는 "+"단추를 누르면 차량을 만들 수 있습니다.차량을 만들 때, 우리는 사용자에게 가능한 모든 옵션을 표시하지 않습니다. 왜냐하면 일부 사용자에게 우리는 차량 id를 먼저 표시하기 때문입니다.이것은validation+submit 이후에 사용자를 다시 상세한 보기로 바꾸는 이유입니다. 이 보기는 이 차의 모든 사용 가능한 기능을 보여 줍니다.
따라서 실제로 우리는 제출한 데이터를 데이터베이스에 저장한 다음에 클라이언트를 세부적인 조작으로 바꾼다. (코드의 재사용이 매우 나쁘다고 말할 수 있다.)
폼 제출은 pjax로 처리되기 때문에, 리셋 기능이 필요합니다.나는 지금

토론 #4

방법을 시험해 보겠다.

토론 #5

구체적인 질문은 다음과 같습니다.
Appe Iphone 5s
삼성 갤럭시S5
삼성 갤럭시S5는/device name/애플 아이폰 5s로 바로 넘어가야 하기 때문에 운영체제가 있을 수 있기 때문에 애플 아이폰 5s에 운영체제가 있다면 301을 URL/장치 이름/os/로 바꿀 것이다.
물론 이것은 먼저 정확한 링크를 인쇄해서 해결할 수 있지만, 그 중 일부 내용이 영구적으로 이동된 다른 사용 사례도 있을 수 있다.그러면 URL을 업데이트해야 의미가 있습니다. 왜냐하면 표시된 내용은 실제적으로 URL과 대응하는 내용이 아니기 때문입니다.
나는 이 문제가 pjax가 해결해야 할 문제가 아닐 수도 있다는 것을 알고 있지만, 나는 개인적으로 네가 좀 고려해야 한다고 생각한다.사람들이 이 플러그인을 사용하는 것은 백엔드 개발자의 완벽한 도구이기 때문이다.그들은 단지 자신의 백엔드가neet의 5-10줄 jquery 플러그인을 통해 백엔드에 반영되기를 원할 뿐이다.X-PJAX-URL 나는 우리가 모두 같은 페이지에 있는지 확실하지 않지만, 나는 단지 aax와 방향을 바꾸는 일반적인 문제를 다시 한 번 설명하고 싶다.
1. aax 요청

토론 #6

URL
2. 서버 프로세스

토론 #7

및 30x 리디렉션/foo3. aax 자동 추적 리디렉션, HTML 응답 수신/foo4.aax 응답에서 30배의 리디렉션이 발생했거나 최종 URL이 무엇인지 감지할 수 없습니다
pjax는 aax를 사용하여 이루어진 것이기 때문에 우리는 방향을 바꾸는 데도 같은 문제에 부딪힐 수 있다.현재 우리가 제시할 수 있는 유일한 해결 방안은 pjax가 이 값을 읽고 URL을 업데이트할 수 있도록 서버 설정 /bar 응답 헤더입니다. 이것은 자술 파일에 제안된 것입니다.따라서 HTML 응답과 현재 URL을 HTML 응답 /bar 헤더로 마지막으로 보내면 괜찮을 것입니다.
또 질문 있으신가요?X-PJAX-URL (jQuery에 사용할 쿠키 플러그인을 다운로드하십시오.이것은 광고가 아닙니다.
https://github.com/carhartl/jquery-cookie/blob/master/src/jquery.cookie.js )

JS:

    $(document).on('pjax:end', function(event, xhr, options){
        Redirect();
    });

    function Redirect(){
        let redirect = $.cookie('redirect');
        if(redirect !== location.pathname){
            history.pushState(null, null, redirect);
            $.cookie('redirect',null,{expires:-99999})
        }
    }

PHP:

$link_to_redirect = '/link/to/redirect';
setcookie('redirect', $link_to_redirect, 0, '/', null, false, false);
header("Location: {$link_to_redirect}");
X-PJAX-URL #pjax 컨테이너 블록의 템플릿 파일에 추가
<div class="hide" style="display:none" id="current-url"><?php print $_SERVER['REQUEST_URI'] ?></div>
및 jQuery:

$(document).on('pjax:end', function(event, xhr, options){
    let current_url = $('#current-url').text();
    if(current_url !== location.pathname){
        history.pushState(null, null, current_url);
    }
});

좋은 웹페이지 즐겨찾기