반응형
Javascript: Ajax와 함께 JSON 개체를 보내시겠습니까?
이게 가능합니까?
xmlHttp.send({
"test" : "1",
"test2" : "2",
});
아마 : 헤더에content type
:application/json
?:
xmlHttp.setRequestHeader('Content-Type', 'application/json')
그렇지 않으면 다음을 사용할 수 있습니다.
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
그리고 나서.JSON.stringify
JSON 오브젝트를 파라미터로 송신합니다만, 가능하다면 이 방법으로 송신하는 것이 좋습니다.
jQuery 사용 시:
$.post("test.php", { json_string:JSON.stringify({name:"John", time:"2pm"}) });
jQuery 사용 안 함:
var xmlhttp = new XMLHttpRequest(); // new HttpRequest instance
xmlhttp.open("POST", "/json-handler");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send(JSON.stringify({name:"John Rambo", time:"2pm"}));
jQuery를 사용하지 않을 경우 다음 사항을 확인하십시오.
var json_upload = "json_name=" + JSON.stringify({name:"John Rambo", time:"2pm"});
var xmlhttp = new XMLHttpRequest(); // new HttpRequest instance
xmlhttp.open("POST", "/file.php");
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send(json_upload);
php 수신 종료의 경우:
$_POST['json_name']
여러 개의 ID 어레이를 전달하고 BLOB를 반환하는 등 나에게 맞는 것을 찾기 위해 며칠 동안 애를 먹었습니다.를 사용하고 있는 경우는, 판명됩니다.NET CORE 2.1을 사용하고 있는 경우 [FromBody]를 사용해야 합니다.또, 데이터를 보관하기 위한 뷰 모델을 작성할 때만 사용할 수 있습니다.
내용은 다음과 같이 정리합니다.
var params = {
"IDs": IDs,
"ID2s": IDs2,
"id": 1
};
제 경우 이미 어레이를 json'd하고 결과를 함수에 전달했습니다.
var IDs = JsonConvert.SerializeObject(Model.Select(s => s.ID).ToArray());
다음으로 XMLHttpRequest POST를 호출하여 개체를 문자열화합니다.
var ajax = new XMLHttpRequest();
ajax.open("POST", '@Url.Action("MyAction", "MyController")', true);
ajax.responseType = "blob";
ajax.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
ajax.onreadystatechange = function () {
if (this.readyState == 4) {
var blob = new Blob([this.response], { type: "application/octet-stream" });
saveAs(blob, "filename.zip");
}
};
ajax.send(JSON.stringify(params));
그럼 이런 모델이 있어.
public class MyModel
{
public int[] IDs { get; set; }
public int[] ID2s { get; set; }
public int id { get; set; }
}
그런 다음 다음과 같은 작업을 통과합니다.
public async Task<IActionResult> MyAction([FromBody] MyModel model)
파일을 반환하는 경우 이 추가 기능 사용
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>
추가 중Json.stringfy
문제를 해결한 Json 주변
언급URL : https://stackoverflow.com/questions/6418220/javascript-send-json-object-with-ajax
반응형
'programing' 카테고리의 다른 글
HTTPie를 사용하여 중첩된 JSON 개체 전송 (0) | 2023.03.07 |
---|---|
Spring Boot의 JPA 저장소에 대해 "유형 검증 완료 없음" (0) | 2023.03.07 |
폼 제출을 포함한 모든 http 요청을 대행 수신하는 방법 (0) | 2023.03.07 |
jgrapht 심플 그래프를 json으로 시리얼화하려면 어떻게 해야 하나요? (0) | 2023.03.07 |
javascript 함수를 JSON에 저장하는 방법 (0) | 2023.03.07 |