$.syslog( { async : false } ) 요청이 아직 비동기적으로 실행되고 있습니까?
여기 작은 문제가 있어요다음 시나리오를 구현하려고 합니다.
- 사용자는 홈 페이지를 열고 다른 사용자의 목록을 보고 클릭하여 친구 목록에 추가합니다.
- 사용자가 로그인하고 있는지 확인하기 위해 서버 리소스에 Ajax 요청을 발행하고, 로그인하고 있는 경우 다른 서버 리소스에 다른 Ajax 요청을 발행하여 실제로 사용자의 친구 목록에 추가합니다.
간단하게 들리나요?제가 한 일은 다음과 같습니다.함수를 만들었습니다.isLoggedIn사용자가 로그인하고 있는지 여부를 판단하기 위해 서버에 대한 첫 번째 요청을 발행합니다.이 요청은 다음을 사용하여 발행합니다.jQuery.ajax방법.기능은 다음과 같습니다.
function isLoggedIn() {
$.ajax({
async: "false",
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/isloggedin",
success: function(jsonData) {
alert("jsonData =" + jsonData.LoggedIn);
return jsonData.LoggedIn;
}
});
}
반환되는 JSON은 매우 단순하며 다음과 같습니다.
{ LoggedIn: true } or { LoggedIn : false }
이 방법은 실제로 동작하여 경보를 올바르게 표시합니다.JsonData = true로그인한 경우JsonData = false로그인하지 않은 경우.지금까지는 문제가 없습니다.이 메서드를 호출하려고 하면 문제가 발생합니다.이렇게 부르죠.
$(".friend_set .img").click(function() {
debugger;
if (isLoggedIn()) {
alert("alredy logged in");
trackAsync();
popupNum = 6;
}
else {
alert("not logged in"); //always displays this message.
popupNum = 1;
}
//centering with css
centerPopup(popupNum);
//load popup
loadPopup(popupNum);
return false;
});
부르기isLoggedIn항상 돌아오다false, 그리고 그것은 반환된다.false before the ajax request finishes (because the messagejsonData = 참is displayed after the message "not logged in". I made sure that the request is **NOT** Asynchronous by stating비동기: false!
그래도 여전히 비동기적으로 작동하고 있는 것 같아요.내가 뭘 놓쳤지?
당신은 필요하다async:false,것은 아니다.async:"false". (예를 들어 부울 패스)false, 문자열이 아닙니다."false").
편집: 비동기 요구에서는 콜 후 값을 반환해야 합니다.ajax(성공 핸들러 내부가 아님):
function isLoggedIn() {
var isLoggedIn;
$.ajax({
async: false,
// ...
success: function(jsonData) {
isLoggedIn = jsonData.LoggedIn
}
});
return isLoggedIn
}
언급URL : https://stackoverflow.com/questions/1531693/ajax-async-false-request-is-still-firing-asynchronously
'programing' 카테고리의 다른 글
| 여러 속성 중 하나 이상이 필요한 JSON 스키마를 정의하는 방법 (0) | 2023.03.23 |
|---|---|
| 스프링 부트의 OffsetDateTime에 대한 Jackson 날짜 형식 (0) | 2023.03.23 |
| Woocommerce의 마지막에 품절된 제품 표시 (0) | 2023.03.23 |
| create-react-app index.js 파일을 테스트합니다. (0) | 2023.03.23 |
| wp_insert_post를 사용하여 워드프레스로 POST permalink/slug을 설정하는 방법 (0) | 2023.03.23 |