我有一个AJAX请求从数据库中获取一些值,然后使用这些值重定向回页面,以便我可以在页面上使用它们。
问题是这个URL很长:
http://ibpc.dev/admin/products/create?specifications={%22id%22:4,%22title%22:%22Video%20Cards%22,%22created_at%22:null,%22updated_at%22:null,%22specifications%22:[{%22id%22:1,%22name%22:%22Model%22,%22created_at%22:%222017-04-23%2022:54:04%22,%22updated_at%22:%222017-04-23%2022:54:04%22,%22pivot%22:{%22category_id%22:4,%22specification_id%22:1},%22attributes%22:[{%22id%22:1,%22specification_id%22:1,%22name%22:%22Brand%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22}]},{%22id%22:2,%22name%22:%22Interface%22,%22created_at%22:%222017-04-23%2022:54:04%22,%22updated_at%22:%222017-04-23%2022:54:04%22,%22pivot%22:{%22category_id%22:4,%22specification_id%22:2},%22attributes%22:[{%22id%22:2,%22specification_id%22:2,%22name%22:%22Interface%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22}]},{%22id%22:3,%22name%22:%22Chipset%22,%22created_at%22:%222017-04-23%2022:54:04%22,%22updated_at%22:%222017-04-23%2022:54:04%22,%22pivot%22:{%22category_id%22:4,%22specification_id%22:3},%22attributes%22:[{%22id%22:3,%22specification_id%22:3,%22name%22:%22Chipset%20Manufacturer%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22},{%22id%22:4,%22specification_id%22:3,%22name%22:%22GPU%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22},{%22id%22:5,%22specification_id%22:3,%22name%22:%22Core%20Clock%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22}]},{%22id%22:4,%22name%22:%22Memory%22,%22created_at%22:%222017-04-23%2022:54:04%22,%22updated_at%22:%222017-04-23%2022:54:04%22,%22pivot%22:{%22category_id%22:4,%22specification_id%22:4},%22attributes%22:[{%22id%22:6,%22specification_id%22:4,%22name%22:%22Effective%20Memory%20Clock%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22},{%22id%22:7,%22specification_id%22:4,%22name%22:%22Memory%20Size%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22},{%22id%22:8,%22specification_id%22:4,%22name%22:%22Memory%20Interface%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22},{%22id%22:9,%22specification_id%22:4,%22name%22:%22Memory%20Type%22,%22created_at%22:%222017-04-23%2022:54:05%22,%22updated_at%22:%222017-04-23%2022:54:05%22}]},{%22id%22:5,%22name%22:%22Ports%22,%22created_at%22:%222017-04-23%2022:54:04%22,%22updated_at%22:%222017-04-23%2022:54:04%22,%22pivot%22:{%22category_id%22:4,%22specification_id%22:5},%22attributes%22:[]},{%22id%22:6,%22name%22:%22Details%22,%22created_at%22:%222017-04-23%2022:54:04%22,%22updated_at%22:%222017-04-23%2022:54:04%22,%22pivot%22:{%22category_id%22:4,%22specification_id%22:6},%22attributes%22:[]}]}
我可以以某种方式缩短此网址吗?
来自模板的AJAX GET请求:
('#category-select').change(function () {
$.ajax({
type: 'GET',
url: '/admin/catalog/specifications',
data: {
selectFieldValue: $(this).val()
},
success: function (response) {
window.location.href = response.redirectUrl + response.data;
}
});
});
路线:
Route::get('/admin/products/create', [
'uses' => 'AdminController@getCreateProduct',
'as' => 'admin.getCreateProduct'
]);
Route::get('/admin/products/create/{specifications}', [
'uses' => 'AdminController@getCreateProduct',
'as' => 'admin.getCreateProduct'
]);
Route::get('/admin/catalog/specifications', [
'uses' => 'AdminController@getProductSpecifications',
'as' => 'admin.getProductSpecifications'
]);
AdminController:
public function getCreateProduct(Request $request)
{
$categories = Category::all();
if ($request['specifications']) {
$specifications = json_decode($request['specifications']);
} else {
$specifications = null;
}
return view('admin.products.create', ['categories' => $categories, 'specifications' => $specifications]);
}
public function getProductSpecifications(Request $request)
{
$categoryId = $request['selectFieldValue'];
$specifications = Category::with('specifications.attributes')->find($categoryId);
return response()->json(array('data' => json_encode($specifications), 'redirectUrl'=> '/admin/products/create?specifications='), 200);
}