레일에서 초보자를 도와주세요 :) 내 ApplicationController
클래스에 속성이없는 호출 (기본적으로 제공됨)이 있습니다.Rails가 위조 방지 설정을 요청합니다
class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time
protect_from_forgery
helper_method :current_user_session, :current_user
filter_parameter_logging :password, :password_confirmation
내가 그것을해야 가정하는 것은 :
은 기본적으로 여기에 코드의 IT는 올바른 authenticity_token
없이 POST 요청을 방지해야한다. 하지만 jQuery와 함께 게시물 요청을 보내면 아래와 같이 제대로 작동합니다 (데이터베이스에서 실행되는 업데이트 문이 있음)!
$.post($(this).attr("href"), { _method: "PUT", data: { test: true } });
나는이 전송 매개 변수들 사이에 authenticity_token
을 없지만 요청이 여전히 유효한 것으로 간주됩니다 콘솔을 참조하십시오. 왜 그런가요?
는 UPD 때문에 DEV 환경과 로컬 요청의
config.action_controller.consider_all_requests_local = true
설정/환경/development.rb에서 찾을 구성 설정은 다음의 jQuery POST 요청을 확인했다.
다른 응용 프로그램에서도 localhost를 사용해서는 안됩니다. 나는 아마 당신이 옳았는지 점검 할 것이고 이것은 추가적인 보안 검사없이 지역 전화로 간주 될 것이다. – Vitaly
localhost에서 수행하더라도 다른 포트에서 실행됩니다. 따라서 앱은 다른 도메인에서 실행됩니다. 유일한 해결책은 crossdomain.xml을 수정하는 것입니다. –
굉장합니다. 이 동작을 변경하기 위해 수정할 수있는 DEV env에 대한 설정을 찾았습니다. – Vitaly