2011-05-02 2 views
0

이 질문은 조금 길었지 만 시도해 보겠습니다.jQuery 포스트가 작동하지 않습니다.

asp.net 웹 사이트에서 jQuery의 아약스 게시물을 사용하려고하는데 작동하지 않습니다.

내가 노력 코드의 간단한 버전이었다 :

$("#divTest").click(function() 
{ 
     $.ajax({ type: "POST", url: "WebForm1.aspx" }); 
}); 

더 많은 사실은 다음과 같습니다 내가 asp.net 4.0을 사용 및 Windows Server에 IIS 7.5를하고있어

  • 2008 년

  • 새 웹 응용 프로그램을 만들고 동일한 코드를 테스트했을 때 정상적으로 작동했습니다.

  • 디버깅 할 때 예상대로 Page_Init 이벤트가 실행되지 않는 것을 확인했습니다.

  • FireBug에서 요청은 페이지로 전송되었지만 응답은 비어 있습니다 (content-length는 0 임).

  • FF, Chrome 및 IE에서이를 테스트했습니다.

  • "GET"으로 유형을 바꾸면 올바르게 작동합니다.

이 문제의 원인은 무엇입니까?

편집 : 내가 지금은 페이지 하여 validateRequest = "false"를을 설정하면 문제가 해결되는 것을 발견

.

게시물 요청이 분명히 실패한 경우 유효성 검사가 실패 할 수있는 원인은 무엇입니까? 그리고 ValidateRequest를 false로 설정 한 다음 다른 작업을 수행 할 수 있습니까?

+0

당신은 비어있는 모든 시간을 기준으로 응답은하지 않을 것이라고 간단한 예제를 사용하고 데이터를 전송하지 않는 경우? WebForm1.aspx의 응답은 어떻게 생겼습니까? –

+0

복잡한 Ajax 게시물이 필요하지 않은 한 짧은'$. post(); '를 사용하는 것이 좋습니다. – Zlatev

+0

데이터를 게시하지 않으므로 실제로 GET 요청이 될 수 있습니다. FF의 NET 탭에서 URL의 오른쪽에 어떤 방법이 표시됩니까? – Craig

답변

0

그래서이 같은 데이터 속성을 사용하여 데이터를 전송해야 할 경우는, 양식을 전송한다고 가정 :

$("#divTest").click(function() 
{ 
     var sdata = $('myform').serialize(); 
     $.ajax({ type: "POST", url: "WebForm1.aspx", data : sdata }); 
}); 

다음 불을 지르고 응답 확인하십시오.

0

시도 데이터 옵션을 추가 ...

$("#divTest").click(function() 
{ 
    $.ajax({ 
     type: "POST", 
     url: "WebForm1.aspx", 
     data: {} 
    }); 
}); 
+0

나는 그 상황을 바꾸지 않았다는 것이 두렵다. – Kuzco

+0

@Kuzco 당신은 새로운 웹 응용 프로그램을 만들 때 코드가 예상대로 작동한다고 언급했습니다. 다른 응용 프로그램에서 URL 재 작성이 없음을 확인할 수 있습니까? 예를 들어 모든 URL을 소문자로 바꾸는 재 작성 모듈이 있다면 (우리가하는 일을 스탯 리포팅에 도움이 될 수 있습니다) 소문자 버전 /webform1.aspx로 리디렉션하면 GET 요청이됩니다. POST 변수를 잃어 버릴 수 있습니다. 나는 당신이 전체 신청서에 익숙하지 않을 수도 있다는 가정을하고 있습니다. – Craig

+0

@Kuzco 아직까지 그렇게하지 않았다면, 문제의 페이지의 OnLoad 이벤트에 중단 점을 설정하고 this.IsPostBack의 값을 확인하고 this.Request.Form & this.Request.QueryString 객체를 검사하십시오. – Craig

관련 문제