Laravel 与 ajax vanila javascript

我是新使用 laravel,我正在尝试创建一个联系人应用程序来练习。


我如何调用 url 或使用 javascript 路由控制器?,显示我的代码来解释我。我在名为 insertDate 的控制器联系人中创建了新方法。我在视图 save.blade.php 中调用此方法并在主要模板 navs.blade.php 中使用 ajax,此文档位于文件夹布局中,javascript 脚本位于文件夹 public js/ajax.js 中。


控制台导航器,打印错误 404 not found POST,是脚本 url,我如何调用我的控制器或路由的 url?


网页.php


//Routes 

Route::get('/', function () {

    return view('welcome');

});


Auth::routes();


Route::get('/home', 'HomeController@index')->name('home');


Route::resource('contactos', 'Contacts');


Route::post('contactos', 'Contacts@insertDate')->name('contacts.insertDate');

联系人控制器


<?php


namespace App\Http\Controllers;


use Illuminate\Http\Request;

use App\Contact;


class Contacts extends Controller

{

    public function __construct(){


        //$this->middleware('auth');


    }

    /**

     * Display a listing of the resource.

     *

     * @return \Illuminate\Http\Response

     */


    public function index()

    {

        //

        $ejemplo = 'Prueba';

        $hola = 'pepito es pepa';

        return view('save', compact('ejemplo', 'hola'));

    }


    public function insertDate(Request $request)

    {

        if($request->ajax()){

            $contact = new Contact;

            $contact->name = $request->name;

            $contact->phone = $request->phone;

            $contact->save();


        }




    }


    /**

     * Show the form for creating a new resource.

     *

     * @return \Illuminate\Http\Response

     */

    public function create()

    {

        //

    }


    /**

     * Store a newly created resource in storage.

     *

     * @param  \Illuminate\Http\Request  $request

     * @return \Illuminate\Http\Response

     */

    public function store(Request $request)

    {

        //

    }


    /**

     * Display the specified resource.

     *

     * @param  int  $id

     * @return \Illuminate\Http\Response

     */

    public function show($id)

    {

        //

    }


控制台导航器,打印错误 404 not found POST,是脚本 url,我如何调用我的控制器或路由的 url?


呼如林
浏览 113回答 2
2回答

收到一只叮咚

试试这个blade<div class="container-form"><form action="{{ route('contacts.insertDate')}}" method="POST">&nbsp; &nbsp; &nbsp; &nbsp; @csrf&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="name" id="name" class="form-control-sm inputs" placeholder="Persona">&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="phone" id="phone" class="form-control-sm inputs" placeholder="Celular">&nbsp; &nbsp; &nbsp; &nbsp; <button id="save" class="btn btn-primary btn-sm">Guardar</button>&nbsp; &nbsp; &nbsp; &nbsp; <input id="url" value={{ route('contacts.insertDate') }} class="btn btn-primary btn-sm">&nbsp; &nbsp; </form></div>和ajaxlet name = document.querySelector('#name').value;let phone = document.querySelector('#phone').value;let save = document.querySelector('#save');let getUrl = document.querySelector('#url').value;const saveDate = ( url, var1, var2) =>{&nbsp; &nbsp; let xhttp = new XMLHttpRequest;&nbsp; &nbsp; let token = '{{ csrf_token() }}';&nbsp; &nbsp; let data = {&nbsp; &nbsp; &nbsp; &nbsp; _token: token,&nbsp; &nbsp; &nbsp; &nbsp; name: var1,&nbsp; &nbsp; &nbsp; &nbsp; phone: var2&nbsp; &nbsp; }&nbsp; &nbsp; xhttp.open('POST', url, true);&nbsp; &nbsp; xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");&nbsp; &nbsp; xhttp.send(data);}save.addEventListener('click', saveDate(getUrl, name, phone));

米脂

Muhammad Amirozzaman Niaz 谢谢,我得到了答案,需要把 setRequestHeader('X-CSRF-TOKEN', document.querySelector('meta[name="csrf-token"]'))阿贾克斯let name = document.querySelector('#name').value;let phone = document.querySelector('#phone').value;let save = document.querySelector('#save');let getUrl = document.forms.createContact;let urls = getUrl.getAttribute('action')const saveDate = ( url, var1, var2) =>{&nbsp; &nbsp; let xhttp = new XMLHttpRequest;&nbsp; &nbsp; let token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');;&nbsp; &nbsp; let data = {&nbsp; &nbsp; &nbsp; &nbsp; _token: token,&nbsp; &nbsp; &nbsp; &nbsp; name: var1,&nbsp; &nbsp; &nbsp; &nbsp; phone: var2&nbsp; &nbsp; }&nbsp; &nbsp; xhttp.open('POST', url, true);&nbsp; &nbsp; xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");&nbsp; &nbsp; xhttp.setRequestHeader('X-CSRF-TOKEN', token);&nbsp; &nbsp; xhttp.send(data);}save.addEventListener('click', saveDate(urls, name, phone));查看保存刀片@extends('layouts.nav')@section('content')&nbsp; &nbsp;<style>&nbsp; &nbsp; &nbsp; &nbsp;.container-form{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;display: flex;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;justify-content: center;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;margin-top: 25px;&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp;.table-insert{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;margin-top:25px;&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp;</style>&nbsp; &nbsp; <div class="container">&nbsp; &nbsp; &nbsp; &nbsp; <h2 class="text-center">Welcome to Contact App</h2>&nbsp; &nbsp; &nbsp; &nbsp; <h4 class="text-center">{{-- auth()->user()->name --}}</h4>&nbsp; &nbsp; </div>&nbsp; &nbsp; <div class="container-form">&nbsp; &nbsp; <form action="{{ route('contacts.insertDate')}}" method="POST" name="createContact">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @csrf&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="name" id="name" class="form-control-sm inputs" placeholder="Persona">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="phone" id="phone" class="form-control-sm inputs" placeholder="Celular">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <button id="save" class="btn btn-primary btn-sm">Guardar</button>&nbsp; &nbsp; &nbsp;</form>&nbsp; &nbsp; </div>&nbsp; &nbsp; <div class="container table-insert">&nbsp; &nbsp; </div>@endsection@section('script')<script src="{{ asset('js/ajax.js') }}"></script>@endsection控制器联系人<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Contact;class Contacts extends Controller{&nbsp; &nbsp; public function __construct(){&nbsp; &nbsp; &nbsp; &nbsp; //$this->middleware('auth');&nbsp; &nbsp; }&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* Display a listing of the resource.&nbsp; &nbsp; &nbsp;*&nbsp; &nbsp; &nbsp;* @return \Illuminate\Http\Response&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function index()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; &nbsp; &nbsp; $ejemplo = 'Prueba';&nbsp; &nbsp; &nbsp; &nbsp; $hola = 'pepito es pepa';&nbsp; &nbsp; &nbsp; &nbsp; return view('save', compact('ejemplo', 'hola'));&nbsp; &nbsp; }&nbsp; &nbsp; public function insertDate(Request $request)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if($request->ajax()){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $contact = new Contact;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $contact->name = $request->name;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $contact->phone = $request->phone;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $contact->save();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 'success';&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* Show the form for creating a new resource.&nbsp; &nbsp; &nbsp;*&nbsp; &nbsp; &nbsp;* @return \Illuminate\Http\Response&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function create()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; }&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* Store a newly created resource in storage.&nbsp; &nbsp; &nbsp;*&nbsp; &nbsp; &nbsp;* @param&nbsp; \Illuminate\Http\Request&nbsp; $request&nbsp; &nbsp; &nbsp;* @return \Illuminate\Http\Response&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function store(Request $request)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; }&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* Display the specified resource.&nbsp; &nbsp; &nbsp;*&nbsp; &nbsp; &nbsp;* @param&nbsp; int&nbsp; $id&nbsp; &nbsp; &nbsp;* @return \Illuminate\Http\Response&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function show($id)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; }&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* Show the form for editing the specified resource.&nbsp; &nbsp; &nbsp;*&nbsp; &nbsp; &nbsp;* @param&nbsp; int&nbsp; $id&nbsp; &nbsp; &nbsp;* @return \Illuminate\Http\Response&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function edit($id)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; }&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* Update the specified resource in storage.&nbsp; &nbsp; &nbsp;*&nbsp; &nbsp; &nbsp;* @param&nbsp; \Illuminate\Http\Request&nbsp; $request&nbsp; &nbsp; &nbsp;* @param&nbsp; int&nbsp; $id&nbsp; &nbsp; &nbsp;* @return \Illuminate\Http\Response&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function update(Request $request, $id)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; }&nbsp; &nbsp; /**&nbsp; &nbsp; &nbsp;* Remove the specified resource from storage.&nbsp; &nbsp; &nbsp;*&nbsp; &nbsp; &nbsp;* @param&nbsp; int&nbsp; $id&nbsp; &nbsp; &nbsp;* @return \Illuminate\Http\Response&nbsp; &nbsp; &nbsp;*/&nbsp; &nbsp; public function destroy($id)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP