POST 데이터를 Postman과 함께 Raw JSON을 통해 전송
Postman(Chrome에서는 열리지 않는 것)을 가지고 있으며, raw JSON을 사용하여 POST 요청을 하려고 합니다.
Body(본문) 탭에서 "raw(원시)"와 "JSON(애플리케이션/json)"이 선택되어 있습니다.
{
"foo": "bar"
}
머리글은 1이고Content-Type: application/json
PHP측에서는 그냥 하고 있습니다.print_r($_POST);
지금은 빈 배열이 나오고 있어요
jQuery를 사용하여 다음 작업을 수행하는 경우:
$.ajax({
"type": "POST",
"url": "/rest/index.php",
"data": {
"foo": "bar"
}
}).done(function (d) {
console.log(d);
});
예상대로 되고 있습니다.
Array
(
[foo] => bar
)
그럼 왜 우체국에서는 작동하지 않는 거죠?
포스트맨 스크린샷:
및 헤더:
이진 옆에 있는 드롭다운에서 raw를 클릭할 때 JSON 옵션을 선택하십시오.이거면 되겠군.
와는 달리jQuery
생으로 읽으려면JSON
PHP로 디코딩해야 합니다.
print_r(json_decode(file_get_contents("php://input"), true));
php://input
는 요구 본문에서 미가공 데이터를 읽을 수 있는 읽기 전용 스트림입니다.
$_POST
폼 변수입니다.로 전환해야 합니다.form
라디오 버튼을 누르다postman
다음으로 다음을 사용합니다.
foo=bar&foo2=bar2
미가공으로 투고하다json
와 함께jquery
:
$.ajax({
"url": "/rest/index.php",
'data': JSON.stringify({foo:'bar'}),
'type': 'POST',
'contentType': 'application/json'
});
meda의 답변은 완전히 적법하지만, 코드를 복사했을 때 오류가 발생했습니다!
어딘가에서"php://input"
잘못된 문자가 있습니다(따옴표 중 하나일 수도 있음).
입력했을 때"php://input"
수동으로 코드를 입력했고, 작동했어요.알아내는 데 시간이 좀 걸렸어!
저도 같은 문제에 직면해 있었습니다.다음 코드가 효과가 있었습니다.
$params = (array) json_decode(file_get_contents('php://input'), TRUE);
print_r($params);
두 솔루션 모두 완벽하게 작동하고 있습니다.
감사해요.
Postman 네이티브 앱 설치, Chrome 확장이 사용되지 않습니다. (내 것은 자체 창에서 열렸지만 Chrome 앱으로 실행되었습니다.)
언급URL : https://stackoverflow.com/questions/39008071/send-post-data-via-raw-json-with-postman
'sourcecode' 카테고리의 다른 글
중첩된 사전의 값을 가져오는 안전한 방법 (0) | 2023.01.30 |
---|---|
Android 앱을 MySQL 데이터베이스에 연결하는 방법 (0) | 2023.01.20 |
방금 발생한 MySQL 경고를 표시하려면 어떻게 해야 합니까? (0) | 2023.01.20 |
MySQL 서브쿼리에서 GROUP_CONCAT 사용 (0) | 2023.01.20 |
브라우저 언어 기본 설정을 감지하기 위한 JavaScript (0) | 2023.01.20 |