jquery의 $ .ajax를 사용하여 json 데이터를 게시 요청으로 내부 서버에 보냅니다. 나는 응답을 얻을 수 있지만, 성공 함수에서는 console.log가 작동하지만 즉각적인 회선은 작동하지 않는다. location.href = '/ users'; 성공에 location.href 만있는 경우에도 트리거되지 않았습니다. 다음은 내 코드 샘플입니다jquery ajax에서 location.href가 실행되지 않음
<script type='text/javascript'>
function submitData() {
var payload = {
'fullname': $('#fullname').val(),
'username': $('#username').val(),
'email': $('#email').val(),
'password': $('#password').val(),
};
var onSuccess = function (data, textStatus, jqXHR) {
console.log(jqXHR.status);
location.href= "/thankyou.html";
};
$.ajax({
type: 'POST',
async: false,
url: '/users',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(payload),
success: onSuccess,
});
}
</script>
나는 또한에서는 window.location이 window.location.href는 window.location.assign(), 없음 위의 코드에서 작동하는 것 같다없는 노력했다. 그러나 이상하게도, 아약스에 대한 완전한 콜백을 정의하고 경고 할 때, 성공에 대한 location.href는 거의 작동하지 않습니다 (그러나 항상 그렇지는 않습니다). 나는 또한 비슷한 질문을 쳐다 보면서 그 해답을 시도했지만이 문제를 해결하지는 못했다. async = true이면 내 플라스크 서버에서 브로큰 파이프 오류가 발생합니다.
그것은'../ users'해야 하는가? –
아니요. 내 데이터가 서버에 의해 수신되어 거기에서 생성되고 201 응답 코드를 전송하기 때문에 URL에 문제가 없습니다. 또한 때로는 location.href가 거의 동일한/사용자 URL로 작동합니다. 확실히 그것은 문제가되지 않습니다. – Prashere
이상한 논리. 당신은 ajax를 사용하여/users에게 POST하고, 응답이 끝나면 응답의 데이터를 무시한 다음 같은/사용자로 리디렉션합니다. 왜 JS로 돌아가서 귀찮게합니까? POST에서 리디렉션합니다. –