JavaScript 함수가 인 이 완료된 후 ASP.Net을 사용 중이며 서버 측 함수를 호출해야합니다.OnClientClick AJAX가 끝난 후에 Fire OnClick을 실행하십시오.
문제는 클라이언트 코드가 끝나기 전에 숨겨진 값이 비어 있기 전에 서버 코드를 실행하고 있다는 것입니다. AJAX 호출은 도메인간에 있으므로 async를 사용하면 false이 작동하지 않는 것 같습니다.
조금 더 설명하기 위해 아래 기본 코드를 추가했습니다.
HTML
<input id="hdnToken" type="hidden" name="hdntoken" value="" />
<asp:Button ID="btnSubmit" Text="Submit" OnClientClick="return getToken();" OnClick="btnSubmit_Click" runat="Server"></asp:Button>
자바 스크립트
function getToken() {
$.ajax({
async: false, // Ignored across domains
method: "POST",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: OnSuccess,
error: OnError
});
function OnSuccess(response) {
$('#hdnToken').val(response);
return true;
}
function OnError(response) {
console.log(response);
return false;
}
};
ASP.Net 서버 측 코드
protected void btnSubmit_Click(object sender, EventArgs e)
{
var hidden = Request.Form["hdnToken"];
}
작품을 해제 할 필요가 없습니다, 감사 – fizgog