2017-11-12 5 views
0

다음 코드를 사용하여 url에 대한 게시물 요청을하려고합니다. http.send (params) 함수에 객체를 전달하면 잘못된 요청 오류가 발생합니다 (400). 여기에서 문제를 추적 할 수 없습니다.http.send() 함수에서 객체를 전달하는 방법은 무엇입니까?

 var http = new XMLHttpRequest() 
     var url = 'http://somerandomurl' 
     http.open('POST', url, true) 
     http.setRequestHeader('content-type', 'application/json') 
     http.setRequestHeader('accept', 'application/json') 
     http.onreadystatechange = function() { 
     if (http.readyState === 4 && http.status === 200) { 
      returndata = http.responseText 
      console.log(JSON.parse(returndata)) 
     } 
     } 
     http.send(params) 

솔루션 : http.send (JSON.stringify ({ '이메일'params.email, '비밀번호'params.password은})) 나를 위해 일했다.

+1

params의 데이터는 무엇입니까? 또한 서버 측 코드를 게시하십시오. 우편 배달부 또는 나머지 고객에게 요청할 수 있습니까? 그렇다면 위의 코드에서 문제가 될 수도 있습니다. 그렇지 않으면 서버 측 코드 문제 일 수 있습니다. –

+1

'params' 객체가 유효한 JSON입니까? 귀하의 코드는 나를 위해 작동합니다. –

+0

@KrishnadasPC 그것은이 함수에 전달 된 json 완전한 객체입니다. –

답변

1

문제는 JSON 대신 전체 개체를 보내려고한다는 것입니다. 이렇게하는 올바른 방법은 사용하는 것입니다 http.send(JSON.stringify(params))

+0

그것은 효과가 있었다. 감사 . –

1

당신은이에 대한 새로운 fetch API 사용할 수 있습니다, 그것은 죽은 간단하고 적은 코드합니다

// Call the fetch function passing the url of the API as a parameter 
fetch(url) 
.then(function(response) { 
    // Your code for handling the data you get from the API 
}) 
.catch(function() { 
    // This is where you run code if the server returns any errors 
}); 

또한 초보자가 더 빨리 작업 일을 얻고 더 빨리 문제를 해결하는 데 도움이됩니다.

관련 문제