Здравствуйте. Есть три вопроса, которые я бы хотел, чтобы вы помогли разобрать.
1) Из-за чего может срабатывать сначала success, а сразу за ним error? Ради теста у success и error указывал alert, которые сработали следом друг за другом.
2) После выполнения ajax кода, который указан ниже, перенаправляет на другую страницу. в консоле указано "Navigated to
cms/admin/edit/post/3". Из-за чего это может произойти?
3) Почему ajax с datatype: "JSON" срабатывает, если ему передать Response::json(['success' => 'good']), но если передать json_encode(['success' => 'good']) - то ничего не происходит. В чем разница и почему так происходит?
Читал, что Response::json() дополнительно передает Content-Type
form class="form-newCat" action="{{route('categoryStore', $post->id)}}" method="post">
<label for="">Название новой рубрики</label>
<input type="text" name="nameCategory">
{!! csrf_field () !!}
<button class="newCat" type="submit">Добавить новую рубрику</button>
</form>
$('.newCat').click(function () {
var data = $('.form-newCat').serializeArray();
$.ajax({
url: $('.form-newCat').attr('action'),
data: data,
headers:{'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
type: 'POST',
datatype: "JSON",
success: function (html) {
if (html.success) {
$('.wrap_result').
text('Заявка отправлена!')
}
},
error: 'Ошибка'
})
Route::group(['prefix' => 'admin'], function () {
Route::get('/adminPanel', function (){
return view('admin/adminPanel');
});
Route::get('/posts', 'admin\PostController@getAll')->name('posts');
Route::get('/edit/post/{id}', 'admin\PostController@getOne')->name('post');
Route::get('/delete/post/{id}', 'admin\PostController@delete')->name('delete');
Route::post('/edit/post/{id}', 'admin\CategoriesController@store')->name('categoryStore');
});
namespace App\Http\Controllers\admin;
use App\Http\Controllers\Controller;
use App\Category;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Response;
class CategoriesController extends Controller
{
public function store ()
{
return Response::json(['success' => 'good']);
}
}