처음으로 fetch
-api를 사용하여 문자열 화되지 않은 JSON
개체를 서버에 전달하는 데 문제가 있습니다. 는 기본적으로 나는이 같은 동작을 달성하고자 :가져 오기가 포함 된 문자열이 아닌 개체 보내기
$.post(url, {"test": "test"}, function(response) {
console.log(response);
});
페치 방법은 unaccessable 나를 위해 및 을 인 웹 API와 통신 일반 JSON
객체를 기대하고있다. 무엇을 인 ($_POST
를 사용하는 경우 비어있는 것으로
fetch(url, {
method: 'POST',
body: {"test": "test"}
})
.then(data => data.json())
.then(json => console.log(json))
.catch(e => console.error(e));
몸 요청이 보인다
일반적으로 그냥 서버에 데이터를 전달하기 위해 FormData
을 사용, 그러나 JSON
문자열 [Object object]
로 변환됩니다 API가 사용하는 경우), file_get_contents('php://input)
을 사용할 때 올바른 값을 제공합니다.
나는이 요청과 관련하여 잘못된 것 header
과 관련이 있지만. 그래서 헤더 Ajax 포스트를 사용하려고 시도 : content-type:multipart/form-data;
. 그러나 이것은 또한 어떤 가치도 얻지 못했습니다.
이것은 무언가를 데이터로 제공하는 평범한 JSON
개체를 사용하지 않으려 고 의도적으로 의도 한 것인지 아니면 단순히 누락 된 것인지 궁금합니다.
이 작업을 수행하지만,이 JSON
객체의 캐릭터 라인 화 버전으로 사용할 수 없습니다 :
var formData = new FormData();
formData.append('data', JSON.stringify(data));
fetch(url, {
method: 'POST',
body: formData
})
.then(data => data.json())
.then(json => console.log(json))
.catch(e => console.error(e));
* JSON *은 어쨌든 단일 문자열 값이므로 'body : JSON.stringify (data)'를 사용해 보셨습니까? – CodingIntrigue
@CodingIntrigue'formData'를 사용하지 않으면'$ _POST'와 함께 작동하지 않는 것처럼 보입니다. 그것이'fetch-api'가'formData' 객체를 사용할 때 자동으로 설정 헤더라고 생각한 이유입니다. – nkmol
어, '$. post'스 니펫은 JSON을 전송하지 않습니까? – Bergi