JQuery gönderilen PHP JSON nesnesi, Tüketmek

6 Cevap php

Ben üzerinden jQuery kullanarak PHP bir JSON nesnesi yolluyorum

$.ajax({
    url: myURL,
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    data: myData,
    processData: false,
    dataType: 'html',    
    async: false,
    success: function(html) {
        window.console.log(html);
    }
});

ve kullanarak JSON nesnesi çözmek için çalışıyor

$GLOBALS["HTTP_RAW_POST_DATA"];

ancak değişkenin içeriği olarak yazdırılır

[object Object]

json_decode ile () (elbette) NULL dönen.

Herhangi Ben gerçek JSON verilere almak için yapmanız gereken bir fikir?

Thanks, Gaz.

6 Cevap

Eğer PHP bir dize gönderme gibi görünüyor. Varsayılan Jquery normal sonrası formatta veri gönderir. PHP gayet güzel bu verileri okuyabilir. Ben sadece POST dizinin dışarı gereken veri alma öneriyoruz.

If you are trying to serialize a Javascript object via JSON and then convert it back to an object in the PHP side, then you might want to go the JSON route. You will need a plugin to convert the data from a string to JSON. You might want to consider: http://code.google.com/p/jquery-json/

Çizgiyi değiştirmek istiyorsunuz:

   data: myData,

Için:

    data: $.toJSON(myData),

Sonra PHP tarafında hala sonrası dizideki verileri alacak ve aşağıdaki komutu ile dönüştürebilirsiniz:

$params = json_decode($_POST[]);

Eğer not php komut, sadece dize 'nesne Object' için bir JSON nesnesi göndermek yok gibi görünüyor.

Eğer $ 'POST kullanarak denediniz mi?

Ben daha fazla veya daha az gibi bu benim JSON istekleri tüm idare:

$params = json_decode($_POST[]);

You are actually sending a string through POST. I recommend using JSON2 to stringify your Javascript object. Use

var myData = JSON.stringify (myObject, ikame);

Kullan file_get_contents('php://input') yerine $GLOBALS["HTTP_RAW_POST_DATA"];

Sen ajax çağrısı 'html' olarak dataType kurdum. Bu 'json' olması gerekmiyor mu? Ben senin güzel json nesne anlamsız bir dizeye aşağı yoğunlaşmış ediliyor düşünüyorum.