Php 第一次使用Ajax(加上Laravel),但我在理解上有问题

Php 第一次使用Ajax(加上Laravel),但我在理解上有问题,php,jquery,ajax,laravel-5,Php,Jquery,Ajax,Laravel 5,今天我第一次尝试使用ajax。 我现在在拉拉维尔做请求 我经常提出的要求很有效。当我按下按钮时,视图可以毫无问题地传入。 现在,我试图得到具体的网站。出现了两个问题 1.结果显示一秒钟,然后再次消失。这很奇怪,因为我在其他请求中使用了相同的代码 2.)我的大部分页面与请求不匹配。当我从另一个页面启动它们时,在RouteCollection.php第201行:“”中得到了“MethodNotAllowedHttpException”。 我真的不明白有些页面有什么不同。因为整个路径是在jquery中

今天我第一次尝试使用ajax。 我现在在拉拉维尔做请求

我经常提出的要求很有效。当我按下按钮时,视图可以毫无问题地传入。 现在,我试图得到具体的网站。出现了两个问题

1.结果显示一秒钟,然后再次消失。这很奇怪,因为我在其他请求中使用了相同的代码

2.)我的大部分页面与请求不匹配。当我从另一个页面启动它们时,在RouteCollection.php第201行:“
”中得到了“MethodNotAllowedHttpException”。 我真的不明白有些页面有什么不同。因为整个路径是在jquery中定义的

这是我的密码。它简单,没有任何真正的功能。仅用于学习目的

AJAX
$(document).on('click','#getRoom', function(){
    $id = document.getElementById("roomNr").value;
    $.ajax({
        url: $rootPath + '/ajax/GetContent3/' + $id,
        type: "GET",
        success: function(data){
            $data = $(data);
            $('#container').fadeOut().html($data).fadeIn();
        }
    }); 
_

_

_

编辑3

GET|HEAD| todo/{id}|| App\Http\Controllers\pagesController@show                  |
编辑4: MY routes.php

Route::get('/', function () {
    return view('welcome');
});

Route::get('admin/createroom', [
    'middleware' => 'auth',
    'uses' => 'roomController@create'
]);

Route::post('admin/createroom', 'roomController@store');



Route::get('todo', 'pagesController@index');

Route::get('image','pagesController@image');

Route::get('todo/create', [
    'middleware' => 'auth',
    'uses' => 'pagesController@create'
]);

Route::get('profile', [
    'middleware' => 'auth',
    'uses' => 'pagesController@profile'
]);
Route::post('todo','pagesController@store');


Route::get('todo/{id}','pagesController@show');


Route::controllers([
    'auth'       => 'Auth\AuthController',
    'password'   => 'Auth\PasswordController',

]);

Route::get('logout','pagesController@doLogout');

Route::get('login', 'Auth\AuthController@getLogin');

Route::get('home', 'pagesController@index');

Route::get('/ajax/GetContent', array(
    'uses'  =>  'ajaxController@loadContent'
));

Route::get('/ajax/GetContent2', array(
    'uses'  =>  'ajaxController@loadContent2'
));

Route::get('/ajax/GetContent3/{id}', array(
    'uses'  =>  'roomController@show2'
));
app/config.php对url的定义如下:

'url' => 'http://localhost/app2',
因此,当我打开“”并按下ajax按钮时,它就会工作

当我打开“http:localhost/app2/public/todo/1”并按下ajax按钮时,它不起作用

我是个白痴。 我没有意识到js文件没有加载到子例程中

所以不是

<script src="/js/app.js"></script>

我现在用

<script src="<?php echo url();?>/js/app.js"></script>

对于您遇到的第一个问题,“内容显示然后消失…”我认为您的jQuery代码有问题。如果你像那样链接你的调用,html、fadeIn和fadeOut的更改都是同时完成的

您必须使用fadeOut回调函数才能更改html,然后只有在fadeOut完成时才能对其进行fadeIn。为此,您必须像这样调用函数:

$(文档).on('click','getRoom',function(){
$id=document.getElementById(“roomNr”).值;
$.ajax({
url:$rootPath+'/ajax/GetContent3/'+$id,
键入:“获取”,
成功:功能(数据){
$data=$(数据);
var container=$(“#container”);
container.fadeOut(函数(){
html($data.fadeIn();
});
}
}); 

将return false;添加到函数中实际上修复了它。刚刚找到解决方案!但非常感谢!
GET|HEAD| todo/{id}|| App\Http\Controllers\pagesController@show                  |
Route::get('/', function () {
    return view('welcome');
});

Route::get('admin/createroom', [
    'middleware' => 'auth',
    'uses' => 'roomController@create'
]);

Route::post('admin/createroom', 'roomController@store');



Route::get('todo', 'pagesController@index');

Route::get('image','pagesController@image');

Route::get('todo/create', [
    'middleware' => 'auth',
    'uses' => 'pagesController@create'
]);

Route::get('profile', [
    'middleware' => 'auth',
    'uses' => 'pagesController@profile'
]);
Route::post('todo','pagesController@store');


Route::get('todo/{id}','pagesController@show');


Route::controllers([
    'auth'       => 'Auth\AuthController',
    'password'   => 'Auth\PasswordController',

]);

Route::get('logout','pagesController@doLogout');

Route::get('login', 'Auth\AuthController@getLogin');

Route::get('home', 'pagesController@index');

Route::get('/ajax/GetContent', array(
    'uses'  =>  'ajaxController@loadContent'
));

Route::get('/ajax/GetContent2', array(
    'uses'  =>  'ajaxController@loadContent2'
));

Route::get('/ajax/GetContent3/{id}', array(
    'uses'  =>  'roomController@show2'
));
'url' => 'http://localhost/app2',
<script src="/js/app.js"></script>
<script src="<?php echo url();?>/js/app.js"></script>