2013-09-25 1 views
0

이것은 현재 상황과 문제점입니다. 나는 2 개의 드롭 다운을 가지고 있는데, 처음에는 선택을 변경하고, 2 번째는 선택된 데이터에 따라 데이터를 채 웁니다 (물론 아약스를 사용하기 때문에). @Controller에 데이터를 제출하면 동일한 페이지로 돌아오고, 동일한 작업을 다시 시도하면 (선택 항목을 선택하여 첫 번째 드롭 다운에서 유효한 정보를 두 번째로 선택) 내가 선택한 항목과 관계없이 정보를 가져옵니다. 이전 요청 (이전 페이지로 되돌아 가기 전). 컨트롤러는 잘못된 정보 (이전 페이지의 이전 정보)를 가져옵니다.이 정보는 두 번째 드롭 다운을 이전 요청 정보로 채 웁니다.Liferay @ResourceURL ajax 호출에 대한 캐싱 매개 변수

마찬가지로 내 ajax 호출은 일부 캐싱을 켜고 오래된 정보를 사용합니다. 이것은 내 코드에서

<portlet:resourceURL var="getURL" id="dataurl" escapeXml="false"></portlet:resourceURL> 

스크립트처럼 보이는 방법입니다

<script> 
var type = $("#pi_selectType option:selected").val(); 

$.ajax({ 
    method : "POST", 
    url : "${getURL}", 
    data : { 
     info1: "${PO.data1}", 
     info2 : type 
    }, 
    dataType : "json", 
    success : function(data) { 
    .... 
}); 
<script> 

내가 아약스 호출에 매개 변수를 추가하는 것을 시도했다 :

cache: false 

하지만 문제는 남아있다.

ResourceMapping 요청 후에 Portlet url을 재설정 할 수있는 방법이 있습니까?이 문제를 해결할 수 있다고 생각하기 때문입니다. 어떤 제안이라도 환영합니다.

+0

6.0 또는 6.1을 사용하는 liferay의 버전은 무엇입니까? CE 또는 EE? 또한 Liferay 문제 [LPS-3022] (http://issues.liferay.com/browse/LPS-3022)를보고 싶을 수도 있습니다.이 문제에 따라 새로운 'resourceURL'을 새로운 매개 변수를 추가하면 이전 매개 변수 인'resourceURL'에 새로운 매개 변수가 추가되어 동일한 데이터를 처리하게됩니다. 이런 경우인지 확인하려면 Firebug에 Firebug를 설치하고 Firebug 콘솔에 생성 된 AJAX 요청 및 URL을 확인하십시오. –

답변

0

세 번째 매개 변수로 현재 타임 스탬프를 사용하십시오. 나는 과거에 그런 문제를 겪었고 이것이 내가 어떻게 해결 했는가.

data : { 
     info1: "${PO.data1}", 
     info2 : type, 
     info3 : <current timestamp long> 
    }, 

요청에 현재 타임 스탬프를 매개 변수로 추가함으로써 항상 새로운 요청으로 처리됩니다.

관련 문제