programing

getJ 사용 방법SON, 포스트 메소드로 데이터를 전송하시겠습니까?

batch 2023. 8. 4. 22:46
반응형

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");

그 통화에서dataToBeSentHTML 양식의 내용을 보내는 경우 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서버측 변경은 필요하지 않습니다.(글쎄요, 항상 사용할 것을 권장합니다.$_REQUESTPHP로.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

반응형