[JQUERY] 아약스 요청은 200 OK를 반환하지만 오류 이벤트가 대신 성공 해고
JQUERY아약스 요청은 200 OK를 반환하지만 오류 이벤트가 대신 성공 해고
해결법
-
1.jQuery.ajax 시도는 지정된 데이터 형식 매개 변수 또는 서버에서 전송되는 컨텐츠 유형 헤더에 따라 응답 본문을 변환합니다. 변환합니다 (JSON / XML이 유효 예를 들어, 경우)에 실패 할 경우, 오류 콜백이 발생합니다.
jQuery.ajax 시도는 지정된 데이터 형식 매개 변수 또는 서버에서 전송되는 컨텐츠 유형 헤더에 따라 응답 본문을 변환합니다. 변환합니다 (JSON / XML이 유효 예를 들어, 경우)에 실패 할 경우, 오류 콜백이 발생합니다.
귀하의 AJAX 코드가 포함되어 있습니다 :
dataType: "json"
이 경우 jQuery를에 :
200 개 OK 상태와 서버 측 코드를 반환 HTML 코드 조각. jQuery를 유효 JSON을 기대하기 때문에 parseerror에 대해 불평 오류 콜백을 발사했다.
이 솔루션은 사용자의 jQuery 코드에서 데이터 유형 매개 변수를 제거하고 서버 측 코드를 반환하는 것입니다 :
Content-Type: application/javascript alert("Record Deleted");
그러나 나는 오히려 JSON 응답을 반환 제안하고 성공 콜백 내부의 메시지를 표시합니다 :
Content-Type: application/json {"message": "Record deleted"}
-
2.여러 개의 공간으로 구분있는 dataType (jQuery를 1.5 이상)를 사용하여 몇 가지 행운을 했어. 마찬가지로 :
여러 개의 공간으로 구분있는 dataType (jQuery를 1.5 이상)를 사용하여 몇 가지 행운을 했어. 마찬가지로 :
$.ajax({ type: 'POST', url: 'Jqueryoperation.aspx?Operation=DeleteRow', contentType: 'application/json; charset=utf-8', data: json, dataType: 'text json', cache: false, success: AjaxSucceeded, error: AjaxFailed });
-
3.당신의 AJAX 호출에서 "JSON"당신은 단순히 데이터 유형을 제거해야
당신의 AJAX 호출에서 "JSON"당신은 단순히 데이터 유형을 제거해야
$.ajax({ type: 'POST', url: 'Jqueryoperation.aspx?Operation=DeleteRow', contentType: 'application/json; charset=utf-8', data: json, dataType: 'json', //**** REMOVE THIS LINE ****// cache: false, success: AjaxSucceeded, error: AjaxFailed });
-
4.이 단지 OP의 유사했다 내 문제에 대한 해결책을 찾을 때 나는이 게시물에 충돌 이후 기록입니다.
이 단지 OP의 유사했다 내 문제에 대한 해결책을 찾을 때 나는이 게시물에 충돌 이후 기록입니다.
내 경우에는 내 jQuery를 Ajax 요청으로 인해 크롬에서 동일 출처 정책에 성공 방지했다. 나는 내 서버 (Node.js를가) 할 수정하면 모두 해결되었다 :
response.writeHead(200, { "Content-Type": "application/json", "Access-Control-Allow-Origin": "http://localhost:8080" });
말 그대로 나에게 벽에 내 머리를 두드리는의 시간을 요했다. 나는 바보 느끼고 ...
-
5.나는 당신의 aspx 페이지는 JSON 객체를 반환하지 않습니다 생각한다. 귀하의 페이지에 이런 식으로 뭔가를해야 (를 Page_Load)
나는 당신의 aspx 페이지는 JSON 객체를 반환하지 않습니다 생각한다. 귀하의 페이지에 이런 식으로 뭔가를해야 (를 Page_Load)
var jSon = new JavaScriptSerializer(); var OutPut = jSon.Serialize(<your object>); Response.Write(OutPut);
또한, 귀하의 AjaxFailed을 변경하려고 :
function AjaxFailed (XMLHttpRequest, textStatus) { }
textStatus 당신이 얻고있는 오류의 유형을 제공해야합니다.
-
6.나는 업데이트 된 jQuery 라이브러리와 함께이 문제를 직면했다. 서비스 방법은 아무것도 반환하지 않는 경우는 반환 타입은 void라는 것을 의미한다.
나는 업데이트 된 jQuery 라이브러리와 함께이 문제를 직면했다. 서비스 방법은 아무것도 반환하지 않는 경우는 반환 타입은 void라는 것을 의미한다.
그런 다음 Ajax 호출에 dataType와 = '텍스트'를 언급 해주십시오.
이 문제를 해결합니다.
-
7.당신은 데이터 유형을 제거해야합니다 : 헤더에서 'JSON'을 당신의 구현 웹 서비스 메서드가 무효 인 경우.
당신은 데이터 유형을 제거해야합니다 : 헤더에서 'JSON'을 당신의 구현 웹 서비스 메서드가 무효 인 경우.
이 경우, Ajax 호출은 JSON 리턴 데이터 유형을 가지고 기대하지 않습니다.
-
8.응답이 JSON 형식 (PHP 버전)에서 확인하기 위해 다음 코드를 사용하여 ...
응답이 JSON 형식 (PHP 버전)에서 확인하기 위해 다음 코드를 사용하여 ...
header('Content-Type: application/json'); echo json_encode($return_vars); exit;
-
9.저도 같은 문제를 가지고 있었다. 내 문제는 내 컨트롤러 대신 JSON의 상태 코드를 반환 하였다. 확인 컨트롤러가 같은 것을 반환합니다 :
저도 같은 문제를 가지고 있었다. 내 문제는 내 컨트롤러 대신 JSON의 상태 코드를 반환 하였다. 확인 컨트롤러가 같은 것을 반환합니다 :
public JsonResult ActionName(){ // Your code return Json(new { }); }
-
10.'JSON'나는 데이터 유형을 제거하려고 할 때 나는 비슷한 문제를 가지고 있지만, 난 여전히 문제가 있습니다. 내 오류가 성공 대신 실행
'JSON'나는 데이터 유형을 제거하려고 할 때 나는 비슷한 문제를 가지고 있지만, 난 여전히 문제가 있습니다. 내 오류가 성공 대신 실행
function cmd(){ var data = JSON.stringify(display1()); $.ajax({ type: 'POST', url: '/cmd', contentType:'application/json; charset=utf-8', //dataType:"json", data: data, success: function(res){ console.log('Success in running run_id ajax') //$.ajax({ // type: "GET", // url: "/runid", // contentType:"application/json; charset=utf-8", // dataType:"json", // data: data, // success:function display_runid(){} // }); }, error: function(req, err){ console.log('my message: ' + err); } }); }
-
11.나를 위해 엉망 일까지이 반대하는 대신 127.0.0.1 또는 그의 localhost를 사용하는 것을 또 다른 것은. 분명히, 자바 스크립트는 하나에서 다른 요청을 처리 할 수 없습니다.
나를 위해 엉망 일까지이 반대하는 대신 127.0.0.1 또는 그의 localhost를 사용하는 것을 또 다른 것은. 분명히, 자바 스크립트는 하나에서 다른 요청을 처리 할 수 없습니다.
-
12.이것 좀 봐. 그 또한 비슷한 문제. 근무 내가 시도했다.
이것 좀 봐. 그 또한 비슷한 문제. 근무 내가 시도했다.
그나마 제거 dataType와 'JSON'
참고 : 당신은 단지 PHP는 에코 아약스 코드 반환을 사용하는 경우 PHP 파일 만 JSON 형식 에코 (200)
-
13.저도 같은 문제가 있었다. 내 JSON 응답은 일부 특수 문자를 포함하고 Ajax 호출이 유효한 JSON 응답 아니라고 생각 있도록 서버 파일이 UTF-8로 인코딩되지 않은 때문이었다.
저도 같은 문제가 있었다. 내 JSON 응답은 일부 특수 문자를 포함하고 Ajax 호출이 유효한 JSON 응답 아니라고 생각 있도록 서버 파일이 UTF-8로 인코딩되지 않은 때문이었다.
-
14.당신은 항상 서버 (NO 빈 응답)에서 JSON을 반환하는 경우, 데이터 형식 : 'JSON은'작동해야하고 contentType이 필요하지 않습니다. 그러나 확인 JSON 출력을 ...
당신은 항상 서버 (NO 빈 응답)에서 JSON을 반환하는 경우, 데이터 형식 : 'JSON은'작동해야하고 contentType이 필요하지 않습니다. 그러나 확인 JSON 출력을 ...
jQuery를 AJAX는 유효하지만 직렬화를 JSON에 'parseerror'를 던질 것이다!
-
15.스크립트는 JSON 데이터 형식의 반환을 요구한다.
스크립트는 JSON 데이터 형식의 반환을 요구한다.
이 시도:
private string test() { JavaScriptSerializer js = new JavaScriptSerializer(); return js.Serialize("hello world"); }
-
16.다음 시도
다음 시도
$.ajax({ type: 'POST', url: 'Jqueryoperation.aspx?Operation=DeleteRow', contentType: 'application/json; charset=utf-8', data: { "Operation" : "DeleteRow", "TwitterId" : 1 }, dataType: 'json', cache: false, success: AjaxSucceeded, error: AjaxFailed });
또는
$.ajax({ type: 'POST', url: 'Jqueryoperation.aspx?Operation=DeleteRow&TwitterId=1', contentType: 'application/json; charset=utf-8', dataType: 'json', cache: false, success: AjaxSucceeded, error: AjaxFailed });
대신 JSON 객체에서 작은 따옴표 큰 따옴표를 사용합니다. 나는이 문제를 해결 것이라 생각합니다.
from https://stackoverflow.com/questions/6186770/ajax-request-returns-200-ok-but-an-error-event-is-fired-instead-of-success by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 커서가 자바 스크립트를 사용하는 텍스트를 삽입 / JQuery와 (0) | 2020.09.28 |
---|---|
[JQUERY] JQuery와 UI 날짜 선택기가 비활성화 토요일과 일요일 (공휴일)로 만들 수 있습니다? (0) | 2020.09.28 |
[JQUERY] 때 자바 스크립트 동기는 무엇입니까? (0) | 2020.09.27 |
[JQUERY] 사용자가 종료 키까지 대신 입력 할 때 자바 스크립트 함수를 실행? (0) | 2020.09.27 |
[JQUERY] 변수는 AJAX 함수에서 반환되지 않습니다 (0) | 2020.09.27 |