2013-07-11 1 views
0

Play 2.0 프레임 워크를 사용하고 있습니다. 500ms마다 jQuery를 사용하여 템플릿 페이지의 부서를 업데이트하려고하지만 작동하지 않습니다. 나는 이미 여기에서 보았다 : http://www.objectify.be/wordpress/?p=428. 나는 모든 지시 사항을 정확하게 따라 갔다. 이 경로입니다Play 2에서 jQuery와 함께 Ajax로드 메소드를 사용할 수 없습니다.

public static Result infoHeure(Long serie_id){ 
Serie serie = Serie.find.ref(serie_id); 
return ok(infoHeure.render(serie.date_fermeture)); 
} 

: 이것은 내 자바 코드

<body onLoad="testFin()"> 
<div id="date_fermeture"></div> 
<script src="@routes.Assets.at("/javascripts/jquery-1.10.2.min.js")"></script> 
<script> 
function termine(){ 
    $('#date_fermeture').load('/eleve/infoheure/@serie.id'); 
} 
function testFin(){ 
    setInterval("termine();",500); 
} 
</script> 
</body> 

: 여기

내 템플릿의 까다로운 부분입니다

POST /eleve/infoheure/:serie_id controllers.Application.infoHeure(serie_id: Long) 

그리고 이것은 템플릿입니다 infoHeure.scala.html :

@(date_fermeture : Date){ 
<div id="date_fermeture"> 
@if(date_fermeture!=null){ 
    @date_fermeture.getTime() 
}else{ 
    Not finished. The date is not yet determined. 
} 
</div> 
} 

"testFin"기능이 작동하고 "termine"기능이 500ms마다 호출됩니다. "세리에"클래스에는 다양한 것들이 포함되어 있으며 그 중 액세스하려는 날짜가 있습니다. 코드가 문제없이 컴파일되지만 페이지에 날짜가 표시되지 않습니다.

Firefox의 브라우저 콘솔에서 오류가 발생하지 않습니다.

도움 주셔서 감사합니다.

답변

1

귀하의 경로는 (두 번째 매개 변수로 POST 데이터를 제공하지 않는 경우) 기본적으로 GET 요청을 수행하는 POST 방법과 jQuery를 load()로 정의된다.

브라우저에서 /eleve/infoheure/... URL을 직접 호출하면 GET 요청을 수행하고 재생에서 일치하는 경로를 찾을 수 없으므로 404 오류가 표시됩니다.

경로를 변경하여 POST 대신 GET을 사용하거나 jQuery가 POST을 수행하도록 자바 스크립트 호출을 수정하십시오.

귀하의 경우 infoHeure() 조치로 데이터가 수정되지 않는다고 가정하면 GET 방법을 사용하도록 경로를 변경하는 것이 좋습니다.

+0

귀하는 정확합니다. 그것은 작동합니다. POST를 GET으로 변경했기 때문에 정말 믿을 수가 없으며 Firefox에서 오류 메시지를 표시합니다. 나는 그때 다른 장소에서 실수를 저질렀다고 생각합니다 ... 도움을 주셔서 감사합니다! –

관련 문제