Ajax Post 数据然后 return 结果

Ajax Post data and then return the result

嘿,我想获取 Mailchimp 列表的 ID 并将其发送到控制器。因此控制器获取 ID 并返回有关正确 Mailchimplist

的所有信息

但是我得到了所有列表,所以当列表 ID 被 Posted

时,GET 函数没有获取数据

Ajax 中的代码 blade

 $(document).ready(function(){
               $('select').on('change',function () {
                   var mailchimplist = $(this).val();
                   alert(mailchimplist);
                   $.ajax({
                       type: "POST",
                       url: "/fetch/mailchimp/pos",
                       data: {mailchimplist : mailchimplist },
                       success: function(msg) {
                           console.log(mailchimplist);
                           $('#autosavenotify').text(msg);
                       }
                   })
               });
           });
           $(document).ready(function() {
               $('select').on('change',function () {
                   $.ajax({
                       url: "/fetch/mailchimp/pos",
                       type: 'GET',
                   })
                       .done(function (data) {
                           console.log(data);
                       })
                       .fail(function () {
                           console.log('Failed');
                       });
               })
           });

我的控制器,所以我想 Post 这里是 mailchimplist id,然后 return 结果返回到我的 blade


    public function mailchimp(Request $request){

        $mailchimp = new Mailchimp("MyAPI");

        $client = new \MailchimpMarketing\ApiClient();
        $client->setConfig([
            'apiKey' => $mailchimp->apikey,
            'server' => $mailchimp->request->getExpApikey()['1'],
        ]);

        $response = $client->campaigns->get("$request->mailchimplist");

        return response()->json($response, 200);
    }

Web.php

    Route::any('/fetch/mailchimp/pos', 'IndexController@mailchimp');

查看您的代码,第一个故障是 csrf 令牌。

将此行放在 blade 文件的头部。

<meta name="csrf-token" content="{{ csrf_token() }}" />

编辑您的 ajax 代码如下:

$(document).ready(function(){
               $('select').on('change',function () {
                   var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content'); //add this line of code
                   var mailchimplist = $(this).val();
                   alert(mailchimplist);
                   $.ajax({
                       type: "POST",
                       url: "/fetch/mailchimp/pos",
                       data: {_token: CSRF_TOKEN, mailchimplist : mailchimplist }, //add _token field also
                       success: function(msg) {
                           console.log(mailchimplist);
                           $('#autosavenotify').text(msg);
                       }
                   })
               });
           });
           $(document).ready(function() {
               $('select').on('change',function () {
                   $.ajax({
                       url: "/fetch/mailchimp/pos",
                       type: 'GET',
                   })
                       .done(function (data) {
                           console.log(data);
                       })
                       .fail(function () {
                           console.log('Failed');
                       });
               })
           });

Read More about csrf protection in Laravel

删除这个你不需要那个

 $(document).ready(function() {
               $('select').on('change',function () {
                   $.ajax({
                       url: "/fetch/mailchimp/pos",
                       type: 'GET',
                   })
                       .done(function (data) {
                           console.log(data);
                       })
                       .fail(function () {
                           console.log('Failed');
                       });
               })
           });

将 mailchimplist 更改为 msg,因为在“函数('msg')”


$(document).ready(function(){
               $('select').on('change',function () {
                   var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content'); //add this line of code
                   var mailchimplist = $(this).val();
                   alert(mailchimplist);
                   $.ajax({
                       type: "POST",
                       url: "/fetch/mailchimp/pos",
                       data: {_token: CSRF_TOKEN, mailchimplist : mailchimplist }, //add _token field also
                       success: function(msg) {
                           console.log(mailchimplist);
                           $('#autosavenotify').text(msg);
                       }
                   })
               });
           });