나는이 작업에 내 중단 점을조치 결과가 캐시되는 이유는 무엇입니까?
public ActionResult SendResetPasswordEmail(string userName)
{
var webUser = LoadUser(userName);
if (webUser != null)
{
var token = WebSecurity.GeneratePasswordResetToken(webUser.UserName);
emailSender.SendPasswordResetEmail(webUser, token, resetAction);
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "No user found with username: " + userName);
}
내가 브라우저에서 작업을 호출 처음, 내가 HTTP 200 응답을 사용자에게 암호 재설정 링크 및 이메일을 생성 (그리고 히트 액션).
브라우저에서 두 번째로 작업을 호출 할 때 콘텐츠가 변경되지 않았 음을 나타내는 HTTP 304 응답이 표시됩니다.
원본 파일에는 클래스 나 동작이 아닌 [OutputCache] 특성이 없습니다.
웹 서버가 내용을 변경하지 않고 HTTP 304를 반환하도록 결정하게하는 원인은 무엇입니까?
나는 내가 HTTP 304 응답에 대한 근본 원인을 이해하는데 관심이 작업 주위
https://stackoverflow.com/a/18620970/141172
알고 있어요. 첫 번째 요청에
업데이트
헤더 :
요청 헤더
Request GET /Companies/SendResetPasswordEmail/?userName=ej HTTP/1.1
X-Requested-With XMLHttpRequest
Accept */*
Referer http://local:6797/Companies
Accept-Language en-US
Accept-Encoding gzip, deflate
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Host localhost:6797
DNT 1
Connection Keep-Alive
Cookie __RequestVerificationToken=sNOBS6qz32LtnJpLWgHHELhaE44DfIVE1LSMUgjzHjcwsvxlUFa4lOSyA5QeB8keLXYL08Psjg29CRI7W73uHLJy6A81; .ASPXAUTH=DAF8AF47E955F723EE9438866BE1B4BFBF91BA01912EF087824F03581DBCA05A4AECA01373FAF40DF0C4D5C17F17DEFA2F85C1B702988B7E0F750BFE19566FC711C7D6BD81D8F0B0ABD68AF5B3D9BA032286361F; ASP.NET_SessionId=5e2gcvkc2p3rji25z5emyqzd; HelixPlugins1.0=IEPlugin1.0
응답 헤더
Response HTTP/1.1 200 OK
Server ASP.NET Development Server/11.0.0.0
Date Thu, 03 Apr 2014 23:29:02 GMT
Cache-Control private, s-maxage=0
Content-Length 0
Connection Close
참고 : StackOverflow의 로컬 호스트를 포함하는 링크가 인터넷 익스플로러는
브라우저 :-) 게시하는 것을 허용하지 않습니다 때문에 위의 지역에 로컬 호스트를 변경 (10)
Fiddler를 사용하여 첫 번째 요청에서 서버가 캐싱을 허용하는 HTTP 헤더를 설정하고 있음을 확인할 수 있습니까? 그런 헤더가 없다면 다른 이론이 필요합니다. – usr
@usr : 요청 및 응답 헤더를 게시했습니다. –
아약스 전화입니까? –