尝试在我的Slim PHP应用程序中使用AJAX获取数据时,控制台中显示404(未找到)。 这是错误消息:

http://localhost:8888/Project/mods/public/edit-mod/ajax/get-categories?gameID=1  404 (Not Found)

这是在routes.php文件中定义的路由(已正确包含,所有其他路由都在工作):

$app->get("/ajax/get-categories/", function() use ($app, $User, $Game, $Mod){

    //Fetch data and echo it
});

最后,这是我在JS脚本中调用AJAX页面的方式:

$.get("ajax/get-categories", {gameID: gameID}, function(data){

    //Do something with data    
}); 

我尝试将Slim路由更改为“ ajax / get-categories /”(不带/ ),但没有任何改变,我还尝试了AJAX调用的一系列不同路径(在JS脚本中),但没有任何变化工作,无论如何我总是得到404。

当我在脚本中仅调用ajax/get-categories时,似乎是将当前页面(例如edit-mod/ )附加到路由中,也许这就是我的问题。

有没有一种方法可以匹配所有以ajax/get-categories结尾的路由,以便上upload/ajax/get-categoriesedit-mod/ajax/get-categories都能起作用?

让我知道是否需要更多代码,我想我已经包含了与该问题有关的所有内容。

===============>>#1 票数:0

我还没有使用Slim框架。 但是我在文档中进行了查找,我认为这不是应该将参数传递给GET请求的方式。

在您的路线中,将代码更改为如下所示:

$app->get("/ajax/get-categories/:gameID", function($gameID) use ($app, $User, $Game, $Mod){
    // You can use the query string $gameID here...
    var_dump($gameID);
    // Do other stuff here...
});

在您的JavaScript文件中:

// I assume in there is a gameID variable in your JavaScript.
$.get("ajax/get-categories/" + gameID, function(data) {

    //Do something with data    
}); 

告诉我是否可行。

请参阅此处的文档。

===============>>#2 票数:0

$app->get("/:segment/ajax/get-categories", function($segment) use ($app, $User, $Game, $Mod){

    //Fetch data and echo it
});

===============>>#3 票数:0

我曾经使用过Slim Framework;)

看,这就是我设法使Ajax与Slim框架一起工作的方式。

首先,你必须声明路线GET POST(当我第一次尝试声明只,它没有工作):

得到:

$app->get('/your/url',$permission(),function() use ($app){
  //here you can check whether it is an ajax call
})->name('your.url');

开机自检:

$app->post('/your/url',$permission(),function() use ($app){
    //get the data:
    $request    =   $app->request;/*getting post data*/
    $var1       =   $request->post('var1');
    $var2       =   $request->post('var2');
    //echo '| For log and testing purposes you can echo out the gotten values. Var1: '.$var1.'. Var2: '.$var2;
    //DO YOUR STUFF here, for example, database processing with Eloquent ORM
    $saved=$user->save();
    if($saved){ echo '[success]';}else{echo '[error]';}/*http://stackoverflow.com/a/27878102/1883256*/
})->name('your.url.post');

现在,从视图的角度,使您的ajax像这样:

<script type="text/javascript">
    /*Referencias: https://www.codecourse.com/forum/topics/use-jquery-ajax-post-with-the-authentication-series/527*/

        /*Permissions*/
        $(function() {
            $('#your_element').change(function(){
                var var1 = this.val1;
                var var2 = this.val2;
                console.log('Value1 is: '+var1+' and value2 is: '+var2);

                $.ajax({
                    data: {var1: var1,var2: var2,{{ csrf_key }}: "{{ csrf_token }}"},
                    type: "POST",
                    dataType: "json",
                    headers: { "cache-control": "no-cache" },
                    url: "/your/url" //add ../your/url if needed
                });//ajax end
            });
        });
    });
</script>

而已。

  • 如果在表单中使用它,则发送csrf令牌也很重要。

  ask by Drown translate from so

未解决问题?本站智能推荐:

1回复

Ajax Slim框架

我正在研究一个ajax来调用slimframework API并将数据发布到数据库。 但是ajax PUT不起作用? 我一直在ajax中收到404。 这有效 在Ajax中进行尝试,这一操作不起作用 :发送数据时返回404,就像您访问API而未发送放置请求一样。 的P
1回复

Ajax上传失败,但无法捕获任何错误

我使用前端jquery ajax脚本将图像发送到由苗条框架应用程序托管的php后端脚本。 该过程适用于除单个图像(附加)以外的所有图像。 后端应该发回一个json对象。 使用该特定图像,它会触发jquery ajax上传的“失败”承诺。 当我登录“ errorThrown”时,我得到
1回复

Slim Framework Ajax jQuery PHP

我有一个个人资料页面,已登录的用户可以在其中发送朋友请求。 这是(树枝)视图: 该页面的位置是: http:// localhost / authentication / public / u / martin,但在文件目录中为C:\\ xampp2 \\ htdocs \\ a
1回复

对Slim Framework PHP函数的jQuery AJAX调用将参数传递为null

我正在尝试使用苗条的框架,当我执行POST输入记录时,绝对没有任何作用。 恐怕我将标识为null的参数传递给了我,因为如果我允许它在数据库中输入一个空记录。 这是mi Slim PHP。 这是我的JS 我的导航员这样说: http://s2.subirimagenes
2回复

如何使用AJAX发布到Slim框架?

我正在使用苗条的框架,雄辩地与数据库交谈。 我试图做一个简单的发布ajax请求,将数据发布到db。 所以我有这条路线: 由该控制器解决 我尝试过这样的事情: 但是我认为这不是正确的方法。 我对此还很陌生,所以如果我缺少明显的东西,请原谅我。 我找不到如何用苗条的a
1回复

使用Ajax post在Slim中进行CSRF检查

使用Ajax发布请求时,我一直在努力使CSRF正常工作。 我确实有多个使用相同CSRF令牌的请求。 但是问题在于它已经在第一个被执行的程序上失败了。 (加载页面时只有1个触发器) 代码的简要概述: Ajax呼叫: 中间件: 我一直在寻找如何解决这一问题。 我几
3回复

开机自检到无法使用Ajax

我正在尝试使用jQuery的ajax将数据发布到我的苗条api。 这是jQuery 和苗条的index.php 在index.php中还有一个$ app-> get(),如果我删除它,则尝试进行POST时会得到405 Method Not Allowed。 显然我没
1回复

使用Slim框架的AJAX帖子输出500(内部服务器错误)

我已经被这个问题困扰了好几天了, 这是我以前的问题,但是似乎所有评论都没有用。 我已经尝试了多种方法并设法摆脱了404错误,但是现在出现了500错误... 基本上,我想在事件发生时发布AJAX查询。 使用AJAX查询解析值来运行Slim发布路线。 使用Slim pos
1回复

使用苗条框架在php中创建友好的url

我想打开个人资料页面,如www.website.com/slim/username (其中username是唯一的)。 我目前正在使用slim php框架来路由GET请求。 因此,当我打开www.website.com/profile/username它会正确执行为/username定义
1回复

在执行JQuery Ajax调用之后,无法从后续的Slim URL重定向请求标头中删除“ X-Requested-With”

调用JQuery AJAX之后,所有后续的Slim重定向在请求标头中都包含“ X-Requested-With:XMLHttpRequest”。 结果,重定向页面的内容在响应中在后台返回,但是浏览器没有重定向到预期的URL。 不知道我在做什么错。 我的Ajax调用如下所示(这是http