가 .erb 관점에서 다음과 같은 형식을 고려하여 실행하지 : 특정 상황에서레일 JS 콜백 원격 JSON 형태 (jQuery를 UJS)
<%= form_tag(harvester_next_url, :method => "post", :remote => true, "data-type" => :json, :id => "answerForm") do %>
<div id="dynamicFormContent"></div>
<% end %>
를, I는 와 next
방법에 JS 콜백을 발행 할 render :js => "window.location = '#{definitions_path}'"
그러나 브라우저에서는 실행되지 않습니다. 응답에 본문의 "window.location ..."이 있고 content-type
이 text/javascript
, 요청의 accept
이 text/javascript
입니다.
레일 버전은 3.2.8입니다.
몇 가지 추가 정보 : JS 콜백 코드는 컨트롤러의 가능한 응답 중 하나이므로 JS 형식을 사용하도록 양식 작업을 전환하고 싶지 않습니다. 다른 시간에는 처리 할 JSON이 필요합니다.
질문 : 클라이언트 측 리디렉션 (예 : JSON 응답에서 window.location 가져 오는 중) 등을 사용하지 않고 을 사용할 수 있습니까? AFAIK, 이것은 비 원격 양식에서도 유효합니다.
ADD XHR이 완료되면 status = "parsererror"
으로 끝납니다. 확실히 이것은 jQuery가 text/javascript
이지만 JSON으로 응답을 구문 분석하려고하기 때문입니다. 질문은 아직 열려 있습니다.
요점은 제가 다소 눈에 거슬리는 방법을 찾고 있습니다 :) JSON 응답에서 URL을 가져 오는 것은 앞에서 언급 한대로 작동하지만 "렌더링 js"접근 방식의 문제점을 파악하고 싶습니다. 완전히 불가능한가요? 버그 또는 기능입니까? – starteleport