내가 Ajax를 사용하여 내가 클라이언트 측에서 호출 매우 간단한 WCF 웹 서비스를 수정 올바른 상태 코드를 반환하지 않습니다 :WCF의 웹 서비스는 응답 헤더가
public string TestService() {
throw new Exception();
return "";
}
: 여기
내 웹 서비스입니다
var mySuccess = function(result,statuscode,xhr){
alert('success');
}
var myFail = function(result,statuscode,xhr){
alert('failure');
}
$.ajax({
type: 'Post'
contentType: "application/json; charset=utf-8",
url: '../myService.svc/TestService',
data: '',
dataType: "json",
success: mySuccess,
error: myFail
});
이 웹 서비스마다 실패의 상태 코드 반환 (예상대로!) '500 : 내부 서버 오류'여기
내 클라이언트 측 AJAX 호출이 모습입니다. 'myFail'콜백 함수는 필요한대로 실행됩니다. 내가 지금처럼, 내 웹 서비스 내에서 응답 헤더를 수정하면
그러나 :
public string TestService() {
WebOperationContext.Current.OutgoingResponse.Headers.Add("token", "1");
throw new Exception();
return "";
}
는 반환 된 상태/코드는 '200 : OK'이며, 모든 시간!
즉, 웹 서비스가 실패 할 때조차도 'mySuccess'기능이 매번 실행됩니다. 내 자신의 사용자 지정 헤더를 응답에 단순히 추가하는 것이 반환 상태를이 방법으로 덮어 쓰는 이유를 알 수 없습니다.
누락 된 것이 있습니까?
동작을 재현 할 수 있습니다. 버그 같아. –
그때 어색해. 클라이언트에게 몇 가지 응답을 다시 전달하는 다른 방법이 있습니까? 실제 반환 값을 무시하는 것은 아닙니다. – John
나는 그렇게 생각하지 않는다. 클라이언트가 보는 모든 것은 응답 헤더와 본문의 두 부분으로 구성된 실제 HTTP 응답입니다. –