【问题标题】:Retrieve the files that are made for ajax handling in laravel检索在 laravel 中用于 ajax 处理的文件
【发布时间】:2023-03-26 13:55:02
【问题描述】:

我正在对我的 home.blade.php 中的另一个页面使用 AJAX 请求。我的 AJAX 请求如下:

function getMessages(){
    $.post("public/ajax_handlers/get_messages.php",
    {
        user_id: "<?php echo \Session::get('user_id'); ?>",
    },
    function(data, status){
        alert("Data: " + data + "\nStatus: " + status);
    });
}

我在 /public/ajax_handlers/ 目录中有 .php 文件,但是当我加载页面时,我收到错误消息:

POST http://localhost:8000/public/ajax_handlers/get_messages.php 404 (Not Found)

XHR failed loading: POST "http://localhost:8000/public/ajax_handlers/get_messages.php".

当我搜索时,我发现了一些关于同一主题的信息,并且有内容告诉我们可以使用 laravel use 函数或 Storage 类,但我没有得到很好的结果。那么,如何让 .php 启动并运行?

【问题讨论】:

标签: php ajax laravel


【解决方案1】:

您应该在routes/api.php 中添加要发布数据的路由。见https://laravel.com/docs/5.6/routing#basic-routing

【讨论】:

  • 如何在'routes/api.php'页面中添加路由,请代码!
  • 就像使用网络路由一样。类似于Route::post('your-route', 'YourCallbackController@post'); 的东西。您应该阅读有关 Laracasts 的文档或 Google,它们有关于如何创建您的第一个 laravel 项目的教程。
【解决方案2】:

这是你需要做的,

在控制器中添加一个函数

public function getMessages(){
  $user_id = \Session::get('user_id'); // or use auth
  // Code

 //You don't have to use api.php for routing since you won't be able to access the session Directly
}

添加路线

Route::post('get-messages','ControllerName@getMessages')

然后是javascript

$.post("get-messages").then(function(response) {
   // handle response
})

【讨论】:

  • 使用同样的方法,我做了类似return "hello"; 的事情,但我没有定义!为什么会这样?
  • 尝试使用获取请求来测试这个(Route::get)并将$.post更改为$.get,使用它来测试return response()-&gt;json(['text'=&gt; 'Hello'])
猜你喜欢
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
  • 2018-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多