2017-01-18 12 views
1

Product ControllerへのjQuery ajax投稿に400(Bad Request)を受け取っています。私はpostarrayをデータベースに接続しようとしています。jQuery ajaxへの投稿400(Bad Request)をProduct Controller

パスattr

<a id="store-product" data-path="{{ path_for('product.design', {sku: design.sku}) }}">Submit</a> 

Ajaxコード

/** Call to the Fancy Product Designer **/ 
fpd = new FancyProductDesigner(_container, pluginOpts); 

var _storeProduct = jQuery('#store-product'); 

_storeProduct.click(function() { 
    var url = _storeProduct.attr("data-path"); 
    var productViews = fpd.getProduct(); 

    /******* 
    //console.log(productViews); 
    //Works Fine upto here with the log array below 
    //Array[5]0: Object1: Object2: Object3: Object4: Objectlength: 5__proto__: Array[0] 
    *******/ 

    jQuery.ajax({ 
     url: url, 
     type: "post", 
     data: JSON.stringify({ 
      action: 'store', 
      views: productViews 
     }), 
     contentType: "application/json; charset=utf-8", 
     success: function (data) { 
      if(parseInt(data) > 0) { 
       alert('Product with ID ' + data + ' stored!'); 
      } else { 
       alert('Error: ' + data + ''); 
      } 
     } 
    }); 
}); 

私はここで間違って持っているのかわかりません。

コントローラコード

public function design($sku, Request $request, Response $response) { 
    $design = Design::where('sku', $sku)->first(); 

    if($request->getParam('action') == 'store') { 
     $views = $request->getParam('views'); 

     $design->update([ 
      'views' => $views 
     ]); 

     return $response->withRedirect($this->router->pathFor('product.get', [ 
      'sku' => $sku, 
     ])); 
    } 
} 

UPDATE

Apacheのアクセスログ

::1 - - [18/Jan/2017:16:27:25 +0700] "POST /projects/GolfBag/public/golf-bags/design/2563901 HTTP/1.1" 400 18 "http://localhost/projects/GolfBag/public/golf-bags/2563901" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" 

ルート

$app->get('/golf-bags/{sku}', ['Base\Controllers\ProductController', 'getProducts'])->setName('product.get'); 
$app->post('/golf-bags/design/{sku}', ['Base\Controllers\ProductController', 'design'])->setName('product.design'); 
+1

'url'は正しいですか?あなたはここで約400のエラーを読むことができますhttp://www.checkupdown.com/status/E400.htmlとhttps://www.lifewire.com/how-to-fix-a-400-bad-request-error- 2617988これは何でもかまいません。サーバーの問題などあります。 – Ionut

+1

いくつかのデバッグ情報を提供してください。あなたのスクリプトが電話をかけるApacheのアクセスログを確認してください。 – omxv

+1

あなたには素晴らしい答えがあります。もしあなたがまだ質問していないのであれば、助けてください。あなたが[mcve]を提供できるなら、それは役に立つかもしれません。 – Mat

答えて

1

掘りのビットの後、私は問題がCSRF TOKEということがわかりましたnが投稿データに適用されていません

関連する問題