我有以下代码
eo.changeState = function(clicked_button) {
// get the selected app path
var app_path = getAppPath(clicked_button);
// get the selected app status
$.ajax({
type: 'POST',
url: '/get_app_status/' + encodeURIComponent(app_path),
context: clicked_button
})
};
并且正在使用路线
Route::post('get_app_status/{app_path}', [
'as' => 'get_app_status',
'uses' => 'LocalDataController@getAppStatus'
]);
问题是当我点击按钮时,我收到以下错误
POST http://localhost:8000/get_app_status/%2Fmedia%2FData%2FCode%2Fproject%2Fdone%2FServiceManager 404 (Not Found)
我认为它是因为%,但我不知道用javascript方法解决这个问题,除了使用替换方法,只需替换javascript上的所有'/',然后用php中的str_replace将它们恢复
是否有关于javascript的有效修复?
答案 0 :(得分:2)
将应用程序路径作为POST参数发送
eo.changeState = function(clicked_button) {
// get the selected app path
var app_path = getAppPath(clicked_button);
// get the selected app status
$.ajax({
type: 'POST',
data: {'app_path': app_path},
url: '/get_app_status/',
context: clicked_button
});
};
路线将是这样的:
Route::post('get_app_status', [
'as' => 'get_app_status',
'uses' => 'LocalDataController@getAppStatus'
]);
最后控制器功能:
function getAppStatus() {
$app_path = Input::get('app_path');
}
答案 1 :(得分:2)
不要在网址中加入app_path
,而是尝试将其作为参数发送:
eo.changeState = function(clicked_button) {
// get the selected app path
var app_path = getAppPath(clicked_button);
// get the selected app status
$.ajax({
type: 'POST',
data: {'app_path': app_path},
url: '/get_app_status'),
context: clicked_button
})
};
然后路线就是:
Route::post('get_app_status', 'LocalDataController@getAppStatus');