send json object from javascript to php

前端 未结 3 899
说谎
说谎 2020-11-30 09:41

I am trying to send JSON object from Javascript/Jquery to PHP and I am getting and error msg in my console. What am I doing wrong. I am new to JS and PHP.

JQ

3条回答
  •  甜味超标
    2020-11-30 10:01

    The standard jQuery .ajax() method uses the data property to create an x-www-form-urlencoded string to pass in the request body. Something like this

    action=Flickr&get=getPublicPhotos
    

    Therefore, your PHP script should not look for $_POST['data'] but instead, $_POST['action'] and $_POST['get'].

    If you want to send a raw JSON data payload to PHP, then do the following...

    Set the AJAX contentType parameter to application/json and send a stringified version of your JSON object as the data payload, eg

    $.ajax({
        url: '../phpincl/apiConnect.php',
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify(flickrObj),
        dataType: 'json'
    })
    

    Your PHP script would then read the data payload from the php://input stream, eg

    $json = file_get_contents('php://input');
    

    You can then parse this into a PHP object or array...

    $dataObject = json_decode($json);
    $dataArray = json_decode($json, true);
    

    And, if you're just wanting to echo it back to the client..

    header('Content-type: application/json');
    
    // unmodified
    echo $json;
    
    // or if you've made changes to say $dataArray
    echo json_encode($dataArray);
    

提交回复
热议问题