我正在嘗試在Laravel 4和Angular JS中開發我的應用程序,我的應用程序允許用戶通過文本更改通過系統檢索其信息。Laravel 4無法從Angular Ajax獲取數據
Angular用於將用戶輸入的數據傳遞給Laravel,Laravel依次從數據庫中檢索信息。
但是Laravel無法檢索從Angular傳遞的數據。
查看
<div data-ng-controller="ReservationController">
<input id='ERI' type='text' data-ng-model="scanRID" data-ng-change="queryRes()" name='exampleInput' maxlength='3' />
</div>
角廠
app.factory('exampleFactory', function($http) {
var factory = {};
factory.getExample = function(scanRID) {
return $http({
method: 'GET',
url: LARAVEL_CONTROLLER + 'Example',
data: $.param(scanRID)
});
};
return factory;
});
角控制器
app.controller('exampleController', function($scope, $http, exampleFactory) {
$scope.queryRes = function() {
if($scope.scanRID.length == 3) {
exampleFactory.getExample($scope.scanRID)
.success(function (data) {
// Do Something Here
})
.error(function (data) {
console.log(data);
});
}
};
});
Laravel 4路由
Route::get('Example', '[email protected]');
Laravel 4 ExampleController
class ExampleController extends \BaseController {
public function show()
{
$id = Input::get('scanRID'); // This here might be wrong. It's always empty!
$data = ExampleModel::find($id); // Able to query and retrieve.
return Response::JSON($data); // Returns empty.
}
}
Laravel 4 ExampleModel
class ExampleModel extends Eloquent {
// The id of this table is what I want, but I can't retrieve it.
protected $fillable = ['id', 'ExampleData1', 'ExampleData2'];
protected $table = 'exampleTable';
}
我也到處去尋找一個解決方案,似乎每個人都能夠成功地使Ajax調用。我認爲我錯過了一些我不瞭解的東西。
我也嘗試設置CSRF令牌,但是,我不認爲這是一個問題。所以我最後的手段是找專家,希望有人能夠幫助我。
在附註中,我對Laravel和Angular相當陌生,因此如果您發佈解決方案,請向我解釋此問題,因爲我想了解有關Angular和Laravel的更多信息。
謝謝你審查我的問題。
我嘗試了第二的解決方案,現在我的應用程序工作正常。非常感謝你的幫助!我會在下一次投票支持該解決方案時,目前我的名聲太低,無法投票回答。 – Cityman 2014-09-21 07:48:53
是的。沒問題 :)。很高興它有助於你:) – 2014-09-21 08:09:20