你好StackOverflow家族.这是我的第一个问题,我希望得到帮助.
我是laravel框架的新手,在我的项目中使用的是5.2版本.我试图使用post方法从我的ajax函数传递数据到特定的控制器方法,但没有数据传递给控制器.
我按照这个论坛中的步骤https://laracasts.com/discuss/channels/laravel/process-data-in-controller-using-ajax-in-laravel但无法使其工作.这是我到目前为止所做的.
我的JavaScript(post_script.js):
$.ajax({
method: 'POST',
url: './home',
data: {
userID: 76,
userName: 'Jimmy'
},
});
Run Code Online (Sandbox Code Playgroud)
请注意,此文件保存在assets/jslaravel结构的目录中.这是我在路径文件(routes.php)中的内容:
Route::get('/', "MyController@home");
Route::get('home', "MyController@home");
Run Code Online (Sandbox Code Playgroud)
这是我在MyController.php文件中的功能:
function home(Request $request) {
$userID = $request['userID'];
$userName = $request['userName'];
return view('home', [
'userID'=> $userID,
'userName' => $userName
]);
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我试图像这样访问它:
<p>User ID: {{$userID}}</p>
<p>User Name: {{$username}}</p>
Run Code Online (Sandbox Code Playgroud)
什么都没显示!请问我做错了什么?我需要你的帮助.如果我的问题不合适,请原谅我,但我希望你明白我的意思.谢谢
我是 ajax 和 JavaScript 的新手。我想要做的是多次调用 ajax 函数以从资源中获取某些数据,然后将所有数据“推送”到一个数组中,以便我稍后可以在代码中使用它。这是我的代码。
var arr = [];
var users = ["brunofin", "comster404", "ESL_SC2", "OgamingSC2", "cretetion", "freecodecamp", "storbeck", "habathcx", "RobotCaleb", "noobs2ninjas"];
for (i = 0; i < users.length; i++) {
$.ajax({
url: "https://api.twitch.tv/kraken/streams/" + users[i],
success: function(data) {
arr.push(data);
},
error: function(data) {
arr.push("blank");
},
complete: function() {
if (i == users.length) {
console.log(arr); //This seem to print even when the condition isn't true
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
代码的问题在于,即使i不等于,它也会打印到控制台users.length
我的问题是;我如何确保它i == users.length在打印到控制台之前一直等到为真?请记住,我仍然希望该过程是异步的。