2014-02-17 1 views
0

파일이 추가되고 오른쪽으로 리디렉션됩니다 (예고없이). xhr을 사용하지 않으면 알림이 표시됩니다.xhr 요청 후 통지를 추가 할 수 없습니다. Rails

는 application.js

var files = evt.target.files || evt.dataTransfer.files; 

// files is a FileList of File objects. List some properties. 
for (var i = 0, f; f = files[i]; i++) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", 'report_drag', false); 
    xhr.setRequestHeader("Content-Type", "text/plain;charset=UTF-8"); 
    xhr.setRequestHeader("X_FILENAME", "file." + f.name.split('.').pop()); 
    xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); 
    xhr.send(f); 
} 

controller.rb 브라우저에서 간단한 요청을 할 때 (A link 또는 button, 또는 단순히 쓰기를 사용하여

def report_drag 
    filename = "report/#{DateTime.now.year}-#{DateTime.now.month}/" + "#{Vendor.where(id: current_user.id).first.title}" + "#{File.extname("#{request.headers['HTTP_X_FILENAME']}")}" 
    File.open(File.join(filename), "wb") { |f| f.write(request.body.read) } 
    redirect_to report_url, notice: "Файл успешно добавлен." 
end 

답변

0

주소 표시 줄)을 선택하면 응답이 현재 페이지를 대체하고 대신 현재 페이지가 렌더링됩니다.

XHR을 사용하면 브라우저가 현재 위치를 변경하지 않고 아무 것도 렌더링하지 않습니다. 호출자 (자바 스크립트 코드)가 응답을 읽고 의미가 있다고 가정합니다.

서버와 비동기 적으로 통신하고 응답을 사용하여 페이지의 일부를 다시 렌더링하려면 tutorial for using rails with Ajax

을 읽어보십시오.
관련 문제