2017-12-07 19 views
0

AJAX POST를 사용하여 데이터를 보내고 있습니다. 데이터는 JSON 형식입니다. 아래를 참조하십시오. 그러나 '예기치 않은 토큰 u가 JSON의 위치 0에 있습니다.'. 왜 이런 일이 일어나는 걸까요? contentType을 여기에 설정하는 이유는 부울 필드 checked이 문자열로 변환되지 않기 때문입니다. 당신이 사용하는 경우contentType을 application/json으로 설정할 때 지정하지 않은 토큰 오류가 발생했습니다.

var data = { 
    "user": "tom", 
    "number": 9, 
    "checked": false 
} 

$.ajax({ 
    url: url, 
    method: "POST", 
    data: data, 
    contentType: 'application/json', 
    dataType: 'json', 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password)); 
    }, 
    success: function (success) { 
     console.log("success"); 
    } 
}); 
+0

어디서 오류가 발생합니까? 자바 스크립트가 실행되거나 답변을받을 때? –

+0

@LioraHaydont 이전에 나는 contentType : 'application/json'을 가지고 있지 않았고 백엔드는 부울을 문자열처럼 다루기 때문에이 문제를 피하기 위해 그것을 설정해야한다는 것을 알았습니다. 내가 한 일은 이제 백엔드 서버로 보내지도 않을 것이다. – b11

답변

1

contentType: 'application/json', 당신은 데이터를 직접 캐릭터 라인 화해야합니다 응답 문제처럼 보인다 오류에 관해서는

data: JSON.stringify(data), 

합니다. 브라우저 개발자 도구 네트워크에서 실제 요청을 검사하고 실제 응답 본문에 포함 된 내용을 확인하십시오.

+0

서버가'user = tom & number = 9 & checked '로 데이터를 받고 있기 때문에 인용 된 오류가 서버 측에서 발생하고있다 (아마도 응답에 포함될 것이다). = false'이므로 요청 본문의 첫 번째 문자는 "user"의 "u"이고 분명히 JSON으로 파싱 할 수 없습니다. – nnnnnn

+0

이것으로 해결되었습니다! – b11