2011-12-30 4 views
0

서버에 배포 한 후 MVC3보기, 로컬 디버그가 정상적으로 작동합니다. 눈에 거슬리지 않는 유효성 검사가 전혀 실행되지 않았 음을 알았습니다. 눈에 띄지 않는 유효성 검사가 실행되지 않음

나는 정적 HTML 파일에 출력을 저장하고 모든 불필요한 코드를 제거하고 내가 적절한 자바 스크립트 파일을 포함 믿습니다

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title> 

    Dummy 

</title> 
    <link type="text/css" href="/Content/site.css" rel="stylesheet" /> 
    <script type="text/javascript" src="/Scripts/jquery-1.6.4.js"></script> 
    <script type="text/javascript" src="/Scripts/jquery.validate.js"></script> 
    <script type="text/javascript" src="/Scripts/jquery.validate.unobtrusive.js"></script> 
    <script type="text/javascript" src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
</head> 
<body> 
<form action="/Test/Dummy" data-ajax="true" data-ajax-complete="MyDummy.OnComplete" data-ajax-method="Post" id="form0" method="post"> 
<select data-val="true" data-val-number="The field SourceId must be a number." data-val-required="SourceId required." id="SourceId" name="SourceId"></select> 
<span class="field-validation-valid" data-valmsg-for="SourceId" data-valmsg-replace="true"></span><br /> 

<select data-val="true" data-val-number="The field DestinationId must be a number." data-val-required="DestinationId required." id="DestinationId" name="DestinationId"></select> 
<span class="field-validation-valid" data-valmsg-for="DestinationId" data-valmsg-replace="true"></span><br /> 

<input type="submit" value=" Submit " class="ButtonStyle" /> 
</form> 

<script type="text/javascript"> 
    var MyDummy = { 
     OnComplete: function (content) { 
      alert(content.responseText); 
     } 
    } 
</script> 

</body> 
</html> 

나머지 다음 섹션의 모든 렌더링 된 HTML이 나에게 잘 보인다. 제출 버튼을 클릭하면 유효성 검증 메시지가 필요하지만 대신 완료되지 않은 이벤트가 발생합니다.

나는 여기에서 매우 분실되어 있습니다. 아무도 실마리가 무엇입니까?

편집 한

, 나는 http://localhost:48194/test.htm (내 로컬 ASP.NET 개발 서버)를 통해 내 로컬 프로젝트의 폴더 액세스를 동일한 정적 HTML 파일을 복사하고 모든 것이 잘 작동합니다. 하지만 2008 년 서버의 로컬 IE8 인 http://localhost:87/test.htm (IIS 7)에서 같은 파일을로드하면 문제가 발생합니다. 어떻게 든 JavaScript 파일에 대한 액세스를 차단하거나 부분적으로 차단하는 IIS7 설정이 잘못되었다고 생각합니까?

편집 2, 나는 그것이 작동하는 그런

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.js"></script> 
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js"></script> 
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.js"></script> 
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.js"></script> 

같은 CDN을 사용하는 JS 참조를 변경하는 경우. IIS7이 로컬 JS 파일 전송을 손상시키기 위해 할 수있는 일은 지금 정말로 모른다.

+0

html 용 jsfiddle가 만들어졌습니다. http://jsfiddle.net/epignosisx/jcPNu/. 로드에 실패한 리소스에 대해 Firebug의 네트워크 탭을 확인 했습니까? – epignosisx

+0

Filddler를 사용하고 다음 파일이 순서대로로드됩니다. 304 - HTTP - /test.htm; 304 - HTTP - /Content/site.css; 304 - HTTP - /Scripts/jquery.validate.js; 304 - HTTP - /Scripts/jquery-1.6.4.min.js; 304 - HTTP - /Scripts/jquery.validate.unobtrusive.js; 304 - HTTP - /Scripts/jquery.unobtrusive-ajax.js; 내가 어떤 파일도 놓친 적이 없다고 생각하지 마라. – hardywang

+0

프로덕션 서버의 URL을 노출 할 수 있습니까? – epignosisx

답변

1

저는 IIS가 자바 스크립트를 차단하는 것처럼 들립니다.

IIS에서 허용되거나 거부되는 파일은 set filters입니다. 어떤 이유로 누군가 (실수로) .js를 차단 했습니까? 또 다른 문제는 파일 액세스 일 수 있습니다. IIS는 일반적으로 다른 사용자로 실행되므로 액세스 할 수 없습니다.

하지만 저는 그냥 추측하고 있습니다. 따라서 이것을 테스트하는 가장 쉬운 방법은 .js 파일을 직접 방문하는 것입니다. 따라서 http://localhost:87/Scripts/jquery-1.6.4.js을 열고 IIS에서 무엇을 반환하는지 확인하십시오. 어쩌면 403 오류, 아마도 다른 오류를 반환 할 수 있습니다. 적어도 무엇이 잘못되었는지 파악하는 데 도움이 될 것입니다.

+0

예, 나중에 시도해 보겠습니다. 그러나 이전에 언급 한 바와 같이 HTTP 활동을 추적하기 위해 Fiddler2를 사용했지만 모두 코드 304를 보여줍니다.하지만 브라우저에서 하나씩 다시로드합니다. – hardywang

0
@section Scripts 
{ 
<script src="../Scripts/jquery.validate-vsdoc.js"></script> 
<script src="../Scripts/jquery.validate.js"></script> 
<script src="../Scripts/jquery.validate.min.js"></script> 
<script src="../Scripts/jquery.validate.unobtrusive.js"></script> 
<script src="../Scripts/jquery.validate.unobtrusive.min.js"></script> 
} 
관련 문제