【问题标题】:Why doesn't this ajax call to Controller work in a particular page (Laravel)?为什么这个对控制器的 ajax 调用不能在特定页面(Laravel)中工作?
【发布时间】:2018-08-11 08:33:26
【问题描述】:

有一个 Ajax 调用适用于其他页面,但不适用于我想要使用它的页面。这是脚本:

<script type="text/javascript">
    var city = "مشهد";
        $.ajax({
            method: 'GET', 
            url: '/changecredsgrabdata', 
            data: {id : city}, 
            success: function(response){
                alert(JSON.stringify(response));
            }
        });
</script>

路线如下:

Route::get('/changecredsgrabdata', 'LoginController@placeholders');

这里是控制器方法:

public function placeholders(Request $req) {
    $qer = $req->id;
    $user_id = SESSION::get('user_id'); //GETTING USER ID
    foreach($user_id as $key=>$item){
        $user_id[$key]= (array)$item;
    }
    $user_id = $user_id[0]["user_id"];  /////////////////

    $user_data = DB::select 
    ('SELECT user_mail ,user_firstname, user_family, user_mobile FROM app_users WHERE user_id= ?' , [$user_id]);
    return response()->json($user_data);
}

ajax 可以在其他页面中使用,$user_data 也不是空的,这正是我想要的。 我还传递了一个城市 id 并在我的方法的第一行使用它,但我根本不需要发送任何数据,我只发送它是因为我不知道如何不发送任何数据。所以忽略那一点。

【问题讨论】:

  • 您在此页面上时是否已登录?
  • 我是。当我用 echo (SESSION::get('loggedin')) 替换返回视图时,我得到一个“1”,表示我已登录。
  • 登录后其他页面还能正常使用吗?
  • 他们在登录时工作。
  • 问题似乎只出在 ajax 上。当我重定向到 LoginController 和 dd($user_data) 的相同方法时,它显示正常。

标签: javascript php jquery ajax laravel


【解决方案1】:

好的,我找到了解决方案,我不敢相信自己犯了这么愚蠢的错误。我没有添加 jQuery。所以我在html的头部添加了一个简单的行,问题就解决了。这是代码行:

<script src="http://code.jquery.com/jquery.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多