jQuery AJAX调用(POST到PHP)问题

时间:2011-12-27 13:52:48

标签: php jquery ajax

我需要在jQuery中使用$.ajax()调用来向我的PHP脚本发布一点JSON。

我已经尝试了所有东西,但没有任何工作,因为我希望它。我只是尝试回显$ _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:

echo var_dump($_POST);

使用$.post()调用时,一切都很有效,但当我尝试切换到$.ajax时,我总是遇到问题。我需要使用它来检索UTF-8编码的响应。

此帖中粘贴的代码只是我尝试过的众多代码段之一,即使网络教程中的示例也不起作用。

有人可以给我一个你知道可以工作的片段,这样我可以试试吗?通过POST发送JSON。

2 个答案:

答案 0 :(得分:1)

我认为你必须给你的json字符串一个键,所以你可以在另一边(PHP)得到它:

data: {"myjson": obj},

然后在PHP上它将在$_POST['myjson']

答案 1 :(得分:1)

下面的

是我常规的一部分,它可以正常工作:

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');              
            }      
        });