1

ノックアウト.jsページからcakephpのコントローラーにデータを投稿していますが、データが正常に投稿されたと表示されますが、コントローラーが応答していないようで、アラートが返されません... null 応答。クロムのネットワークタブもチェックしましたが、正しいデータが投稿されていることが示されています

これが私のノックアウトビューモデルファイルから投稿されたデータです

var JSON_order = JSON.stringify({"orderInfo":[{"itemNumber":"1","quantity":"1","price":1.00,"productName":"test"}]});
$.post("/orders/submit_order", JSON_order,
function(data){
    alert(data.check); //alert doesn't appear
}, "json");

これが私のコントローラーです

function submit_order(){
    $this->layout = false;
    $this->autoRender = false;
    if ($this->request->is('post')) {
        $order = $this->request->data;
        $order = json_decode($order, true);
        $finalize_order = new submit;
        $finalize_order->display_submitted_order_success($order);
    }
}

これがdisplay_submitted_order_successのコードです(CakePHPの外部のphpファイルでもこれを試しましたが、どちらも機能しませんでした)

function display_submitted_order_success($order = null){
    $this->layout = false;
    $this->autoRender = false;
      //I'm just trying to display the order as-is so that I know it's even being posted to begin with
    echo json_encode(array("check" => "success","order_num" => $order)); //the values passed the price check, display the result 
}
4

1 に答える 1

1

JSON_orderの値をvarに割り当てる必要があります。

var JSON_order = JSON.stringify({"orderInfo":[{"itemNumber":"1","quantity":"1","price":1.00,"productName":"test"}]});
$.post("/orders/submit_order", {order:JSON_order},
function(data){
    alert(data.check); //alert doesn't appear
}, "json");

コントローラーが次のように受け取るようにします。

$data['order'] = '{"orderInfo":[{"itemNumber":"1","quantity":"1","price":1,"productName":"test"}]}'
于 2013-05-17T02:35:58.743 に答える