2016-04-26 1 views
0

Я застрял в запросе POJ-запроса ajax.405 (метод не разрешен) в настраиваемом URL-маршруте Laravel 5.2

  1. Мой URL выглядит следующим образом localhost/product/list (если строка нажата, она будет перенаправлять page.edit через запрос, как этот localhost/product/list/edit/{id})
  2. Когда localhost/product/list/edit/{id} принимает запрос на редактирование ответ показывает ошибку подобный localhost/product/list/edit/update_list 405 (Method Not Allowed).

  3. Я смущен, почему URL-адрес изменяется от localhost/product/list/edit/{id} до localhost/product/list/edit/update_list, я имею в виду, что переменная /{id} отсутствует.

консоли всегда маркирует эту часть в моем AJAX edit.js как ошибка.

$.ajax({ 
    type:"POST", 
    data: { 
     'id': id, 
     'judul': judulArtikel, 
     'isi': isiArtikel, 
     // --- till the end --- 
    } 
}); 

Вот мои load.js который загружает данные из базы данных.

<td><a id='"+result.data[count-1].id+"'' href='list/edit/"+result.data[count-1].id+"' class='glyphicon glyphicon-pencil'></a></td> 

Это мой route.php.

Route::get('list/edit/{id}', '[email protected]_to_edit'); 
Route::post('/update_list', '[email protected]_list'); 

Это мой контроллер.

public function list_to_edit($id){ 
    $artikel = Artikel::where("id","=",$id)->get(); 
    return view('page.edit',compact('artikel')); 
} 

Вот мои edit.js.

$(document).ready(function(){ 
 
\t 
 
\t \t $('#isi_artikel').summernote({ 
 
\t \t \t height: 300, 
 
\t \t \t minHeight: 400, 
 
\t \t \t maxHeight: 400, 
 
\t \t \t focus: true 
 
\t \t }); 
 
\t \t 
 
\t $('#btn_submit').click(function(e){ 
 
\t \t e.preventDefault(); 
 

 
\t \t var isiArtikel = $('#isi_artikel').summernote('code'); 
 
\t \t var judulArtikel = $('#judul').val(); 
 
\t \t var deskripsiArtikel = $('#deskripsi').val(); 
 
\t \t var kategori = $('input[name="etype"]:checked').val(); 
 

 
\t \t if($('#inputpicture').val() == ""){ 
 
\t \t 
 
\t \t $.ajaxSetup({ 
 
\t \t \t headers: { 
 
\t \t \t \t 'X-CSRF-TOKEN':$('meta[name="csrf_token"]').attr('content') 
 
\t \t \t } 
 
\t \t }) 
 

 
\t \t $.ajax({ 
 
\t \t \t type:"POST", 
 
\t \t \t data: { 
 
\t \t \t \t 'id' \t \t : id, 
 
\t \t \t \t 'judul' \t : judulArtikel, 
 
\t \t \t \t 'isi' \t \t : isiArtikel, 
 
\t \t \t \t 'kategori' \t : kategori, 
 
\t \t \t \t 'deskripsi' : deskripsiArtikel, 
 
\t \t \t \t 'image' \t \t : null 
 
\t \t \t }, 
 
\t \t \t dataType: "json", 
 
\t \t \t url: "update_list", 
 
\t \t \t beforeSend: function (request) { 
 
\t \t   return request.setRequestHeader('X-CSRF-Token', $("meta[name='csrf_token']").attr('content')); 
 
\t \t  }, 
 
\t \t \t success: function(result){ 
 
\t \t \t \t if(result){ 
 
\t \t \t \t \t window.location.href = "kelola"; 
 
\t \t \t \t } 
 
\t \t \t }, 
 
\t \t \t error : function(jqXhr) { 
 
\t \t   var errors = jqXhr.responseJSON; 
 
\t \t   //console.log(jqXhr); 
 

 
\t \t   errorsHtml = "<div class='alert alert-warning text-center' role='alert'>"; 
 

 
\t \t   $.each(errors , function(key, value) { 
 
\t \t    errorsHtml += value[0] ; 
 
\t \t    //console.log(value[0]); 
 
\t \t   }); 
 

 
\t \t   errorsHtml += "</div>"; 
 
\t \t 
 
\t \t \t \t $('.alerts').html("<div>gila lu</div>"); 
 
\t \t   $('.alerts').append(errorsHtml).fadeIn(200).fadeToggle(10000).fadeOut(50); 
 
\t \t  } 
 
\t \t }, "json"); 
 
\t \t }else{ 
 
\t \t \t var ajax = function(imageData){ 
 
\t \t \t \t requestUploadArtikel(judulArtikel, isiArtikel, kategori, deskripsiArtikel, imageData); 
 
\t \t \t } 
 

 
\t \t imageupload($('#inputpicture').get(0), ajax); 
 
\t \t } 
 
\t \t \t \t \t \t \t 
 
\t \t \t \t \t \t \t 
 
\t }); 
 

 
\t function requestUploadArtikel(judul, isi, kategori, deskripsi, imageData){ 
 
\t \t $.ajaxSetup({ 
 
\t \t \t headers: { 
 
\t \t \t \t 'X-CSRF-TOKEN':$('meta[name="csrf_token"]').attr('content') 
 
\t \t \t } 
 
\t \t }) 
 

 
\t \t $.ajax({ 
 
\t \t \t type:"POST", 
 
\t \t \t data: { 
 
\t \t \t \t 'id' \t \t : id, 
 
\t \t \t \t 'judul' \t : judul, 
 
\t \t \t \t 'isi' \t \t : isi, 
 
\t \t \t \t 'kategori' \t : kategori, 
 
\t \t \t \t 'deskripsi' : deskripsi, 
 
\t \t \t \t 'image' \t \t : imageData 
 
\t \t \t }, 
 
\t \t \t dataType: "json", 
 
\t \t \t url: "update_artikel", 
 
\t \t \t success: function(result){ 
 
\t \t \t \t if(result){ 
 
\t \t \t \t \t window.location.href = "kelola"; 
 
\t \t \t \t } 
 
\t \t \t }, 
 
\t \t \t error : function(jqXhr) { 
 
\t \t   var errors = jqXhr.responseJSON; 
 
\t \t   //console.log(jqXhr); 
 

 
\t \t   errorsHtml = "<div class='alert alert-warning text-center' role='alert'>"; 
 

 
\t \t   $.each(errors , function(key, value) { 
 
\t \t    errorsHtml += value[0] ; 
 
\t \t    //console.log(value[0]); 
 
\t \t   }); 
 

 
\t \t   errorsHtml += "</div>"; 
 
\t \t 
 
\t \t \t \t $('.alerts').html("<div>gila lu</div>"); 
 
\t \t   $('.alerts').append(errorsHtml).fadeIn(200).fadeToggle(10000).fadeOut(50); 
 
\t \t  } 
 
\t \t }, "json"); 
 
\t } 
 

 
\t function imageupload(element, ajax){ 
 
\t \t console.log('testimageupload'); 
 
\t \t 
 
\t  var elementId = element.id; 
 

 
\t  if(element.files && element.files[0]){ 
 
\t   var file = element.files[0]; 
 
\t   var validFileType = ".jpg, .png, .bmp"; 
 
\t   var extension = file.name.substring(file.name.lastIndexOf('.')).toLowerCase(); 
 
\t   $("#"+elementId+"-show").attr('src', ""); 
 

 
\t   console.log(extension); 
 

 
\t   //validatefile 
 
\t   if(validFileType.toLowerCase().indexOf(extension)<0){ 
 
\t    $("#"+elementId+"-alert").show(); 
 
\t    $("#"+elementId+"-show") 
 
\t    .attr('style', '') 
 
\t \t \t \t .css('height','auto') 
 
\t    return; 
 
\t   } 
 
\t   $("#"+elementId+"-alert").hide(); 
 

 
\t   //showfile 
 
\t   var reader = new FileReader(); 
 
\t   reader.onload = function(e){ 
 
\t   \t ajax(e.target.result); 
 
\t   } 
 

 
\t   if (reader.readAsDataURL) {reader.readAsDataURL(element.files[0]);} 
 
\t   else if(reader.readAsDataurl) {reader.readAsDataurl(element.files[0]);} 
 
\t   else if(reader.readAsDataUrl) {reader.readAsDataUrl(element.files[0]);} 
 

 
\t  } 
 
\t  else{ 
 
\t  \t console.log('else'); 
 
\t   $(elementId+"-show").attr('src',""); 
 
\t  } 
 
\t } 
 
});

вот мой edit.blade.php

@extends('layout.layout') 
 

 
@section('css') 
 
    <link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.1/summernote.css" rel="stylesheet"> 
 
@stop 
 

 
@section('script') 
 
    <script type="text/javascript" src="{{ asset('js/artikel/edit.js') }}"></script> 
 
    <script src="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.1/summernote.js"></script> 
 
@stop 
 

 

 
@section('content') 
 
<!-- Main Content --> 
 
    
 
    <div class="container"> 
 
     <div class="row"> 
 
     <h1 class="text-center edittengah">Edit Artikel</h1> 
 
      <div class="alerts"></div> 
 
      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> 
 
      @foreach ($artikel as $a_artikel) 
 
      <input type="hidden" name="_token" value="{{{ csrf_token() }}}" /> 
 
       <div class="row control-group"> 
 
        <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
         <label>Judul Artikel</label> 
 
         <input type="text" class="form-control" placeholder="Judul Artikel" id="judul" required data-validation-required-message="Harap tuliskan judul artikel." value="{{$a_artikel->judul}}"> 
 
         <p class="help-block text-danger"></p> 
 
        </div> 
 
       </div> 
 
       <div class="row control-group"> 
 
        <div class="form-group col-xs-12 controls"> 
 
         <label for="inputpicture">Ganti Foto Artikel</label> 
 
         <input type="file" name="picture" class="" id="inputpicture"> 
 
        </div> 
 
       </div> 
 
       <div class="row control-group"> 
 
        <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
         <label>Deskripsi Artikel</label> 
 
         <textarea name="deskripsi" id="deskripsi" cols="70" rows="5" placeholder="Deskripsi Artikel">{{ $a_artikel->deskripsi }}</textarea> 
 
         <p class="help-block text-danger"></p> 
 
        </div> 
 
       </div> 
 
       <div class="row control-group"> 
 
        <div class="form-group col-xs-12 floating-label-form-group controls"> 
 
         <label>Isi</label> 
 
         <div id="isi_artikel">{!! $a_artikel->content !!}</div> 
 
         <p class="help-block text-danger"></p> 
 
        </div> 
 
       </div> 
 
       <br> 
 
       <div class="row control-group"> 
 
      \t \t <div class="form-group col-xs-12 controls"> 
 
        <label>Jenis Artikel</label> 
 
        <?PHP if($a_artikel->kategori == "umum"){?> 
 
          <label><input class="CBumum" type="radio" name="etype" value="umum" checked="true"> Umum </label> 
 
          <label><input class="CBsh" type="radio" name="etype" value="selfhelp"> Self Help </label> 
 
          <label><input class="CBact" type="radio" name="etype" value="activites"> Activities </label> 
 
         <?PHP } 
 
          elseif($a_artikel->kategori == "selfhelp"){ 
 
         ?> 
 
          <label><input class="CBumum" type="radio" name="etype" value="umum" > Umum </label> 
 
          <label><input class="CBsh" type="radio" name="etype" value="selfhelp" checked="true"> Self Help </label> 
 
          <label><input class="CBact" type="radio" name="etype" value="activites"> Activities </label> 
 
         <?php } 
 
          else{ 
 
         ?> 
 
          <label><input class="CBumum" type="radio" name="etype" value="umum" > Umum </label> 
 
          <label><input class="CBsh" type="radio" name="etype" value="selfhelp"> Self Help </label> 
 
          <label><input class="CBact" type="radio" name="etype" value="activites" checked="true"> Activities </label> 
 
         <?php }?> 
 
\t      
 
\t     \t \t 
 
        </div> 
 
       </div> 
 
       
 
       <hr> 
 
       <br> 
 
       <div id="success"></div> 
 
       <div class="row"> 
 
        <div class="form-group col-xs-12"> 
 
         <input class="btn btn-success" id="btn_submit" type="submit"> 
 
        @endforeach 
 

 
        </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    
 
@stop

Ваша помощь необходима. Заранее спасибо.

ответ

0

Удовлетворительный мое плохое знание в маршрутах ,,

мой Аякса обновление URL:

"url" : "/update_list" 

он должен должен быть

"url" : window.location + "/update_list" 

и мой контроллер от:

Route::post('/update_list', '[email protected]_post'); 

-

Route::post('kelola/list/{id}/update_list', '[email protected]_post'); 

'kelola/список/{ID}/update_list' относятся к моей BaseUrl до того процесса Аякса URL

Смежные вопросы