【发布时间】:2015-05-06 12:59:39
【问题描述】:
我正在开发 Laravel 4 应用程序,并将其部署在免费主机上。问题是我的 POST 路由在那里不起作用,并且由于“方法不允许”异常而崩溃。相同的路线在我的本地机器上完美运行。请给我一些关于这里可能发生的事情的笑话?
更新:
这就是我所说的路线:
$.ajax({
method: "POST",
url: "/store/addToCart/" + phone.id(),
contentType: "application/json; charset=utf-8"
}).done(function(returnedData) {
window.location = "/";
});
这是我的路线:
Route::post('/store/addToCart/{id}', 'CartProductController@addToCart');
这是我的控制器:
public function addToCart($productId) {
$product = Product::where('id', '=', $productId)->first();
//Session::flush();
if( null !== Session::get('cart') ) {
$cartId = Session::get('cart');
$products_count = Session::get('products_amount')[0];
$amount = Session::get('amount')[0];
$cartProduct = CartProduct::create(['cart_id' => $cartId[0],
'product_id' => $productId,
'product_cost' => $product->price_bgn,
'product_qty' => 1
]);
if( isset($cartProduct) ){
$products_count++;
$amount += $product->price_bgn;
}
Session::push('cart', $cartId);
Session::forget('products_amount');
Session::push('products_amount', $products_count);
Session::forget('amount');
Session::push('amount', $amount);
} else {
$products_count = 0;
$amount = 0;
$cart = Cart::create(['status' => 'НОВА',
'cost' => $product->price_bgn
]);
$cartProduct = CartProduct::create(['cart_id' => $cart->id,
'product_id' => $productId,
'product_cost' => $product->price_bgn,
'product_qty' => 1
]);
if( isset($cartProduct) ) {
$products_count++;
$amount = $product->price_bgn;
}
Session::push('cart', $cart->id);
Session::forget('products_amount');
Session::push('products_amount', $products_count);
Session::forget('amount');
Session::push('amount', $amount);
}
}
这在我的本地机器上工作,但在我的主机上它崩溃了“方法不允许”。
【问题讨论】:
-
请向我们提供您在应用程序中使用的代码。我们不能只提供通配符解决方案,这不是 StackOverflow 的用途。向我们展示您的路线文件,并向我们展示使用的控制器/方法。
-
你是否使用与get相同的路由?如果是这样,请尝试使用
Route::post('/store/addToCart/{id}', [ 'as' => 'addToCart.post', 'uses' => 'CartProductController@addToCart' ]);和Route::get('/store/addToCart/{id}', [ 'as' => 'addToCart.get', 'uses' => 'CartProductController@addToCart' ]);的路线 -
不,我没有使用与 get 相同的路线,但添加了您的代码,它工作正常。不明白为什么,但工作。谢谢:)
-
@stackUnderflow 请接受我的回答
标签: laravel web-hosting