2011-12-27 8 views
0

PHP 스크립트에 JSON을 약간 게시하려면 jQuery에서 $.ajax() 호출을 사용해야합니다.jQuery AJAX 호출 (PHP POST) 문제

나는 모든 것을 시도했지만 아무 것도 작동하지 않습니다. 나는 $ _POST/$ _ GET 배열의 var_dump를 반향하려고 시도하지만 빈 상태로 되돌아 간다.

var myJSONObject = {"bindings": [{"conversation": _conid} ]}; 
var obj = $.toJSON(myJSONObject); 

$.ajax({ 
    type: "POST", 
    url: "./code/ajax/fetch_messages.php", 
    data: obj, 
    async:true, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(data) 
    { 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) 
    { 
    }, 
    beforeSend: function (XMLHttpRequest) 
    { 

    }, 
    complete: function (XMLHttpRequest, textStatus) 
    { 
    }}); 

내가 포스트는 헤더에보고되어 있음을 볼 수 있습니다

{ "바인딩": [{ "대화": "38x001c61450ad4d5abd47c37408e8236eb5427f54e2930000306882646e4016c5f8ecf8e00a18a26ab3b6d07f6727bd187625daaedf951f93072d54d59e300e100"}]}

PHP :

$.post() 호출을 사용할 때 모든 것이 잘 작동하지만 항상 문제가 발생합니다. $.ajax으로 전환하려고합니다. UTF-8 인코딩 된 응답을 검색 할 수 있어야합니다.

이 게시물에 붙여 넣은 코드는 내가 시도한 많은 스 니펫 중 하나에 불과하며 웹 튜토리얼의 예제도 작동하지 않습니다.

누군가 내가 할 수있는 일을하는 걸 알려주시겠습니까? POST를 통해 JSON 보내기. 아래 $_POST['myjson']

답변

1

나는 당신이 당신의 JSON 문자열 키를 제공해야합니다 생각, 그래서 당신은 다른 쪽 (PHP)에 그것을 얻을 수 내 일과의 조각을 잘 작동합니다 :

var data = 'post_type=' + post_type.val() + '&page_id=' + 
page_id.val() + '&home_page=' 
+ home_page.attr('checked') + '&archive_page=' + 
archive_page.attr('checked') + '&search_page=' + 
    search_page.attr('checked'); 


    //start the ajax 
     $.ajax({ 
      //this is the php file that processes the data and send mail 
      url: "?service=set_data", 

      //GET method is used 
      type: "GET", 

      //pass the data   
      data: data,  

      //Do not cache the page 
      cache: true, 

      //success 
      success: function (html) {       
        $(".no-items").hide("slow"); 
        $("#list_table").append(html).hide().slideDown('slow');    
      }  
     }); 
+0

아니, 그 작동하지 않았다. 그것은 myjson = % 7B % 22bindings % 22 %의 3A % 5B % 7B % 22conversation % 22 % 3A %의 2238x001c61450ad4d5abd47c37408e8236eb5427f54e2930000306882646e4016c5f8ecf8e00a18a26ab3b6d07f6727bd187625daaedf951f93072d54d59e300e100 % 7D는 'contentType이'선을 제거하는 시도 – Josef

+0

22 % 7D의 %의 5D % 인 JSON로부터 전송 헤더의 포맷을 변경 '$ .ajax' 옵션을 사용하거나''application/x-www-form-urlencoded ''로 설정하십시오 – bfavaretto

+0

Yeey! 그게 문제 였어! 감사. 이상하게도 튜토리얼에서는 그것을 문제로 보지 않았습니다. – Josef

1

가 있습니다에

data: {"myjson": obj}, 

그런 다음 PHP에가있을 것입니다 :

+0

감사합니다. 하지만 json을 보내지 않는 "get"을 사용할 때 어떤 문제도 없습니다. – Josef