【发布时间】:2017-01-26 17:38:45
【问题描述】:
我在产品控制器的 jQuery ajax 帖子上收到 400(错误请求)。我正在尝试将post 和array 发送到我的数据库。
路径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,
]));
}
}
更新
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');
【问题讨论】:
-
你确定
url是正确的吗?你可以在这里阅读更多关于 400 个错误 checkupdown.com/status/E400.html 和 lifewire.com/how-to-fix-a-400-bad-request-error-2617988 它可以是任何东西,也可以是服务器问题等。 -
请提供一些调试信息。检查 apache 访问日志,您的脚本在其中进行调用
-
为了给您一个很好的答案,如果您还没有看过How to Ask,它可能会对我们有所帮助。如果您可以提供minimal reproducible example,它可能也很有用。