getJ 사용 방법SON, 포스트 메소드로 데이터를 전송하시겠습니까?
나는 위의 방법을 사용하고 있으며 URL의 한 파라미터에서 잘 작동합니다.
예.Students/getstud/1
컨트롤러/액션/매개 변수 형식이 적용됩니다.
이제 Students 컨트롤러에 두 개의 매개 변수를 허용하고 JSON 개체를 반환하는 작업이 있습니다.
그래서 어떻게 데이터를 게시합니까?$.getJSON()
포스트 메소드를 사용하시겠습니까?
유사한 방법도 허용됩니다.
요점은 AJAX로 컨트롤러의 작업을 호출하는 것입니다.
$.getJSON() 메서드는 POST가 아닌 HTTP GET을 수행합니다.$.post()를 사용해야 합니다.
$.post(url, dataToBeSent, function(data, textStatus) {
//data contains the JSON object
//textStatus contains the status: success, error, etc
}, "json");
그 통화에서dataToBeSent
HTML 양식의 내용을 보내는 경우 serialize 방법을 사용하여 양식에서 POST용 데이터를 만들 수 있지만 원하는 모든 것을 사용할 수 있습니다.
var dataToBeSent = $("form").serialize();
이것이 저의 "한줄" 솔루션입니다.
$.postJSON = function(url, data, func) { $.post(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
jsonp 및 POST 메서드를 사용하기 위해 이 함수는 "callback" GET 매개 변수를 URL에 추가합니다.사용 방법은 다음과 같습니다.
$.postJSON("http://example.com/json.php",{ id : 287 }, function (data) {
console.log(data.name);
});
서버는 콜백 GET 매개 변수를 처리하고 json 문자열을 다음과 같이 반환할 준비가 되어 있어야 합니다.
jsonp000000 ({"name":"John", "age": 25});
여기서 "jsonp000000"은 콜백 GET 값입니다.
PHP에서 구현은 다음과 같습니다.
print_r($_GET['callback']."(".json_encode($myarr).");");
도메인 간 테스트를 몇 번 해봤는데 효과가 있는 것 같습니다.그래도 아직 테스트가 더 필요합니다.
다음 행을 추가하면 됩니다.<script>
(jQuery가 로드된 후에는 게시하기 전에 어딘가에 있음):
$.postJSON = function(url, data, func)
{
$.post(url, data, func, 'json');
}
바꾸기(일부/전체)$.getJSON
와 함께$.postJSON
맛있게 드세요!
에서와 동일한 Javascript 콜백 기능을 사용할 수 있습니다.$.getJSON
서버측 변경은 필요하지 않습니다.(글쎄요, 항상 사용할 것을 권장합니다.$_REQUEST
PHP로.http://php.net/manual/en/reserved.variables.request.php, $_REQUEST, $_GET, $_POST 중 어떤 것이 가장 빠릅니까?)
이것은 @lepe의 솔루션보다 간단합니다.
나는 getJ를 하는 코드가 있었습니다.아들아, 그냥 우편물로 대체했어요놀랍게도, 효과가 있었습니다.
$.post("@Url.Action("Command")", { id: id, xml: xml })
.done(function (response) {
// stuff
})
.fail(function (jqxhr, textStatus, error) {
// stuff
});
[HttpPost]
public JsonResult Command(int id, string xml)
{
// stuff
}
방금 포스트와 if를 사용했습니다.
data = getDataObjectByForm(form);
var jqxhr = $.post(url, data, function(){}, 'json')
.done(function (response) {
if (response instanceof Object)
var json = response;
else
var json = $.parseJSON(response);
// console.log(response);
// console.log(json);
jsonToDom(json);
if (json.reload != undefined && json.reload)
location.reload();
$("body").delay(1000).css("cursor", "default");
})
.fail(function (jqxhr, textStatus, error) {
var err = textStatus + ", " + error;
console.log("Request Failed: " + err);
alert("Fehler!");
});
$.getJSON()
AJAX 요청을 보내고 응답으로 JSON 데이터를 가져오는 데 매우 유용합니다.아아, jQuery 문서에는 이름을 지정해야 하는 자매 함수가 없습니다.$.postJSON()
그냥 사용하는 게 어때요?$.getJSON()
그리고 그것을 끝낼 것인가요?글쎄요, 아마도 당신은 많은 양의 데이터를 보내고 싶거나, 저의 경우, IE7은 단지 GET 요청에서 제대로 작동하지 않기를 원할 것입니다.
사실입니다. 현재 없습니다.$.postJSON()
네를 지정하면 동일한 작업을 수행할 수 .$.post()
함수:
내 코드는 다음과 같습니다.
$.post('script.php', data, function(response) {
// Do something with the request
}, 'json');
매개 변수가 두 개뿐인 경우 다음 작업을 수행할 수 있습니다.
$.getJSON('/url-you-are-posting-to',data,function(result){
//do something useful with returned result//
result.variable-in-result;
});
언급URL : https://stackoverflow.com/questions/751218/how-to-use-getjson-sending-data-with-post-method
'programing' 카테고리의 다른 글
HTML5 비디오 치수 (0) | 2023.08.04 |
---|---|
LINQ를 SQL에 사용하면 SQL 주입을 방지할 수 있습니다. (0) | 2023.08.04 |
명령 하나로 도커 파일 빌드 및 실행 (0) | 2023.08.04 |
도커 네트워킹 사용 안 함: 경고: IPv4 전달 사용 안 함.네트워킹이 작동하지 않음 (0) | 2023.08.04 |
'엔트리' 키워드는 어떻게 되었습니까? (0) | 2023.08.04 |