我想在ajax网址中调用 storeProduct 控制器方法。
url:'。/ product_catalog / storeProduct'
如何在此网址中调用方法?
我想在产品数据库中存储product_id和广告系列ID。
发现页面错误。
路线:
Route::get('product_catalog','front\ProductCatalogController@showProductCatalogForm');
Route::post('product_catalog',['as' => 'storeProduct', 'uses' => 'front\ProductCatalogController@storeProduct']);
Ajax:
$(".my_form").submit(function(event) {
event.preventDefault(); //prevent default action
var product_id = $(this).find('#product_id').val();
var campaign_id = $(this).find('#campaign_id').val();
console.log(product_id);
console.log(campaign_id);
$.ajax({
type: "POST",
url: './product_catalog/storeProduct',
data: {
'product_id': product_id,
'campaign_id': campaign_id
},
success: function(data) {
alert(data);
console.log(data);
}
});
});
控制器:
public function showProductCatalogForm()
{
//if($_GET["campaign"]!=="")
$campaign=$_GET["campaign"];
return view('front.product_catalog');
}
public function storeProduct(Request $request)
{
$this->validate($request, $this->rules);
$input=Input::all();
$campaign_product=ProductCatalog::create($input);
return redirect('product_catalog');
}
答案 0 :(得分:1)
url: {{ url('/product_catalog/storeProduct') }},
答案 1 :(得分:0)
你的路线应该是
Route::get('/product_catalog','front\ProductCatalogController@showProductCatalogForm');
你的ajax网址应该是
type: "POST",
url: '/product_catalog',
或者您可以使用route();
我建议您不要使用url()
,因为如果您想要更改urls
,您需要手动更改它。这对app.urls不利改变100或1000.可能是危险。
你应该尝试像这样的名字路线
Route::get('/product_catalog','front\ProductCatalogController@showProductCatalogForm')->name('product_catalog');
和你的ajax网址
type: "POST",
url: {{ route('product_catalog') }},
答案 2 :(得分:0)
为什么要添加“。”在./product-catalog
!
只需使用/product-catalog
如果要搜索文件夹或项目目录或任何其他文件夹中的任何目录或任何文件,并且不确定文件的位置,请使用"."
当有链接路径时,不要在URL中使用
答案 3 :(得分:0)
如果您在刀片中写了javascript,请尝试此操作:
$(".my_form").submit(function(event) {
event.preventDefault(); //prevent default action
var product_id = $(this).find('#product_id').val();
var campaign_id = $(this).find('#campaign_id').val();
console.log(product_id);
console.log(campaign_id);
$.ajax({
type: "POST",
url: '{{route('storeProduct')}}',//this is only changes
data: {
'product_id': product_id,
'campaign_id': campaign_id
},
success: function(data) {
alert(data);
console.log(data);
}
});
});
答案 4 :(得分:0)
使用该斜杠前不带点。
url: '/product_catalog/storeProduct',