제목에 대해 유감입니다.이 설명 방법을 모르겠습니다.IF 문에서 자바 스크립트 개체 선언
기본적으로 JQUERY/ajax를 사용하여 PHP 스크립트를 호출하여 일부 입력의 유효성을 검사하고 일부 데이터를 가져옵니다. 반환 된 데이터는 JSON으로 인코딩되므로 JQuery에서 JSON으로 데이터 유형을 설정하고 객체를 반환합니다.
네트워크 연결이 예상대로 응답하지 않는 특정 조건 하에서 (예기치 않은) 조건에서 Ajax 호출이 JQUERY의 오류 옵션을 호출한다는 것을 발견했습니다.
대부분의 경우 서버에서 오류 메시지가 표시되지만 오류가 발생하고 서버 측 스크립트에서 JSON이 다시 전송되지 않는 경우가 있습니다. 나는 그 네트워크 상황을 아직 자극시킬 수있는 것을 정확히 추적하지는 못했지만, 어쨌든 나는 아직 알지 못하는 사이에 Javascript로 다시 처리 할 것이라고 생각했다.
아이디어는 예상 개체가 만들어 졌는지 확인하고 그렇지 않은 경우 예상되는 두 속성을 사용하여 만들고 대화 상자를 실행하는 것입니다. 이 방법을 사용하면 오류 메시지를 반복하여 작성하지 않아도됩니다. 큰 절약은 아니지만 원리를 시험해보고 싶었습니다.
$.ajax({
url: 'getmetadata.php',
type: "POST",
data: entereddata,
dataType: "json",
timeout: (7000), //wait 7 seconds
error: function(data)
{
// handle errors
if(data)
{
// Do nothing error message will be issued from the data object
}else{
// no message was returned. Some other error occured.
function tempdata()
{
this.errortitle = "Error title";
this.errormessage = "Error text";
};
var data = new tempdata();
};
// issue error message
runDialogue(data.errortitle,data.errormessage);
}, //ERROR
success: function(data)
{
}; // SUCCESS
}); // AJAX
위의 코드에서 데이터 개체는 "if"문 앞에 존재해야합니다. 그리고 runDialogue()에 도착하면; errortitle 및 errordescription 특성을 전달하기 위해 오브젝트 데이터가 항상 있어야합니다.
"데이터"개체가있는 경우 아무 문제가 없습니다. 작동하지 않는 것은 "데이터"개체가 존재하지 않는 경우, 즉 "if"테스트에 실패한 경우입니다. else는 "data"객체를 생성해야하지만 그렇지 않습니다.
내가 잘못 했습니까?
또한 "else"절에서 그 함수를 정의하는 것은 꽤 비관적입니다. – Pointy
함수를 정의하지 않습니다. 객체이고, 이미 종료하지 않은 경우에만 정의해야합니다. – T9b
@Pointy : :) 함수 호출을 객체 할당으로 변경했습니다. – Chandu