首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >此路由不支持GET方法。支持方法: POST。当我想输入数据时

此路由不支持GET方法。支持方法: POST。当我想输入数据时
EN

Stack Overflow用户
提问于 2021-04-25 04:26:08
回答 1查看 96关注 0票数 0

我试图解决这个Laravel输入问题,,但我找不到解决方案。我遵循老师的指导,这是工作。但是,当我尝试打开控制台时,我发现它显示了错误消息:

代码语言:javascript
运行
复制
`Access to XMLHttpRequest at 'http://localhost/lat_laravel-vue1/public/api/siswa/tambahsiswa' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.` 

当我点击Laravel的链接时,它会显示一条错误消息

代码语言:javascript
运行
复制
"The GET method is not supported for this route. Supported methods: POST.". 

我使用Laravel5.8版本。

https://i.stack.imgur.com/0z6C2.png

Laravel控制器

代码语言:javascript
运行
复制
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\siswaModel;
use Illuminate\Support\Facades\Validator;

header('Access-Control-Allow-Origin: *');
class siswaController extends Controller
{
    public function simpan(Request $req)
        {
            $validator = Validator::make($req->all(), [
                'nama_siswa' => 'required',
                'tanggal_lahir' => 'required',
                'gender' => 'required',
                'id_kelas' => 'required'
            ]);
            if ($validator->fails()) {
                return Response()->json($validator->errors());
            }
            $simpan = siswaModel::create([
                'nama_siswa' => $req->nama_siswa,
                'tanggal_lahir' => $req->tanggal_lahir,
                'gender' => $req->gender,
                'id_kelas' => $req->id_kelas,
                'alamat' => $req->alamat
            ]);
            if ($simpan) {
                $data['status'] = true;
                $data['message'] = "Sukses Menambahkan Siswa";
            } else {
                $data['status'] = false;
                $data['message'] = "Gagal Menambahkan Siswa";
            }
            return $data;
        }
    }

路由

代码语言:javascript
运行
复制
Route::post('/tambahsiswa', 'siswaController@simpan');

Vue文件

代码语言:javascript
运行
复制
    <div class="container">
        Nama Siswa
        <input type="text" name="nama_siswa" v-model="nama_siswa" class="form-control">
        <br>

        Tanggal Lahir
        <input type="date" name="tanggal_lahir" v-model="tanggal_lahir" class="form-control">
        <br>

        Gender
        <select name="gender" v-model="gender" class="form-control">
            <option></option>
            <option v-for="gender in listgender" :key="gender.key" value="{{gender.key}}">{{gender.val}}</option>
        </select>
        <br>

        Alamat
        <textarea rows="4" class="form-control" v-model="alamat" name="alamat"></textarea>
        <br>

        Kelas
        <select name="kelas" v-model="kelas" class="form-control">
            <option></option>
            <option v-for="kelas in listkelas" :key="kelas.id" value="{{kelas.id}}">{{kelas.nama_kelas}}</option>
        </select>
        <br>

        <button class="btn btn-primary" @click="simpansiswa()">Simpan</button>
    </div>
</template>
<script>
export default {
    name: "Tambahsiswa",
    data() {
        return {
            'listgender': [
                { key: 'L', val: 'Laki-laki' },
                { key: 'P', val: 'Perempuan' }
            ],
            listkelas: [],
            nama_siswa: '',
            tanggal_lahir: '',
            gender: '',
            alamat: '',
            kelas: '',
        }
    },
    methods: {
        getkelas:function() {
            this.axios.get('http://localhost/lat_laravel-vue1/public/api/getkelas').then((result) => {
                this.listkelas = result.data
            })
        },
        simpansiswa:function() {
            var datasiswa = {
                nama_siswa: this.nama_siswa,
                tanggal_lahir: this.tanggal_lahir,
                gender: this.gender,
                alamat: this.alamat,
                id_kelas: this.kelas
            }
            
            this.axios.post('http://localhost/lat_laravel-vue1/public/api/siswa/tambahsiswa', datasiswa).then((result) => {
                console.log(result)
            })
        }
    },
    mounted(){
        this.getkelas();
    }
}
</script>```
EN

回答 1

Stack Overflow用户

发布于 2021-04-25 05:18:04

你的Laravel和Vue在一个项目中吗?

  1. No :Laravel5.8违约没有CORS。您能检查已安装到配置CORS的软件包吗?

  1. 是的:尝试在CDN中使用Axios,而不是javascript包和post数据。

https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67249763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档