Laravel Ajax 调用 url 到控制器
Posted
技术标签:
【中文标题】Laravel Ajax 调用 url 到控制器【英文标题】:Laravel Ajax call url to controller 【发布时间】:2017-06-06 20:02:27 【问题描述】:我是 laravel 的新手。我想使用 ajax 调用使用 laravel 创建一个 api。但我请求 ajax 调用,url 显示无效的服务器路径。 这是我的代码 我的路线文件:
Route::get("a/b","AController@c");
我的 js 文件:
var base = "public/index.php";
var url = base + "a/b";
$.ajax(
url : url,
dataType: "json",
timeout: 10000,
error:function() alert("Error getting from server")
).done(function(resp)
);
假设我在以下网址中:
domain.com/dev/lar/public/index.php/c/d
然后我调用这个 ajax ,然后 url 将重定向到
domain.com/dev/lar/public/index.php/c/public/index.php/a/b
这里 lar 是我的 laravel 应用文件夹
** Note I am using nginx server. My Server Admin do not rewrite this url. That's why I use public/index.php **
【问题讨论】:
试试这个代码 Route::get("/a/b","AController@c");而不是 Route::get("a/b","AController@c"); 这条路线不起作用,因为我的应用程序文件夹是域之后的许多子文件夹。 ex- domain.com/dev/laravel 应用文件夹 为什么你使用 domain.com/dev/lar/public/index.php/c/d 而不是 domain.com/dev/lar/public/c/d。你让 index.php 成为目录而不是文件??? domain.com/dev/lar/public/c/d 给出 404 错误。给 domain.com/dev/lar/public/index.php/c/d 后,路由正常 【参考方案1】:控制器声明中缺少您。你必须首先使用反斜杠。例如
Route::get("/a/b","AController@c");
并且在你的 ajax 代码中的 url 应该是
var base = "domain.com/dev/lar/public/index.php";
var url = base + "/a/b";
【讨论】:
我认为问题出在您的 ajax 基本网址中。我已经更新了代码。试试这个 你是对的。我知道这种方法。但我不想在我的代码中修复我的服务器基本路径。在代码中修复基本 url 路径是一种不好的做法。如果我更改我的域,那么我想修改我的代码以上是关于Laravel Ajax 调用 url 到控制器的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 如何通过 AJAX (jQuery) 调用控制器函数
如何将数据从ajax get方法发送到laravel中的控制器?
如何在 ajax 调用时从 laravel 控制器函数返回视图?
Laravel 5:在路由中获取 ajax 数据并传递给控制器