如何在 Laravel 中使用 ajax 请求插入 sessionStorage 数据?

劳伦斯·基思·阿尔巴诺

我对这个使用 laravel 的 ajax 请求很陌生,目前我被卡住了。我在从数据库插入 sessionStorage 时遇到问题。

例如,我在 sessionStorage 中有:

  Key      Value
=================
gclid      12345
token      abcde  

我想使用ajax获取gclidtoken值的值并将其存储在数据库中。

在我的 ajax 中,如何获取这些参数值并将其存储在我的db. 我有这个条件来获取key这样的逻辑参数:

这是在我的控制器中:

if(key == gclid)
   $traffic->traffic_type = $request->('gclid');
else if (key == token)
   $traffic->traffic_type = $request->('token');

如何在我的 jquery 中传递这个变量并在我的控制器中添加一个请求以使用 ajax 获取它?

var gclid = sessionStorage.getItem('gclid');
var token = sessionStorage.getItem('token');

阿贾克斯

// Tracking Parameters
            function storeVisitorParameters() {
                let url = '{{ route('trackvisit') }}';

                var gclid = sessionStorage.getItem('gclid');
                var token = sessionStorage.getItem('token');
                
                const data = {};

                    $.ajax({
                        type: 'POST',
                        url: url,
                        data:data,
                        beforeSend: function (xhr) {
                            var token = $('meta[name="csrf-token"]').attr('content');
                            if (token) {
                                return xhr.setRequestHeader('X-CSRF-TOKEN', token);
                            }
                        },
                        complete: function() {
                        },
                        success: function (data) {
                            $.notify("Visitor Parameters Stored!", 'success');
                        },
                        error: function (xhr, ajaxOptions, thrownError) {
                            console.log('server errors', thrownError);
                        }
                    });
            }

流量控制器.php

class TrafficController extends Controller
{
    // Store gclid or token parameters to traffic_tacking_table
    public function storeVisitorParameters(Request $request) 
    {
        $traffic = new TrafficTracking();
        $traffic->user_id = $user->user_id;

        if($traffic->traffic_type = $request->gclid;) // check if key = gclid
        {
            $traffic->traffic_type = $request->gclid;   // store the key in db
            $traffic->traffic_value = $request->get('gclid');
        }
        else if ($traffic->traffic_type = $request->token) // check if key = token
        {
            $traffic->traffic_type = $request->token;   // store the key in db
            $traffic->traffic_value = $request->get('token');
        }

        $traffic->ip_address = $request->ip();
        $traffic->domain = $request->getHttpHost();
        $traffic->save();

        return response()->json($traffic);
    }
}

网页.php

Route::post('/trackvisit', 'TrafficController@storeVisitorParameters')->name('trackvisit');

移民

 public function up()
    {
        Schema::create('traffic_tracking', function (Blueprint $table) {
            $table->increments('traffic_id');
            $table->string('ip_address');
            $table->string('traffic_type');
            $table->string('traffic_value');
            $table->integer('user_id');
            $table->timestamps();
        });
    }

我的主要目标是只获取sessionStorage值并向我的控制器发送请求。

我真棒

在您的 php 控制器中,将其更改if($traffic->traffic_type = $request->gclid;)if($traffic->traffic_type == $request->gclid),您正在比较值,对吗??如果条件允许==它应该是双重的;在里面移除

在 javascript 中捕获 csrf 令牌,

var _token = $('meta[name="csrf-token"]').attr('content');

在 AJAX 请求中,

dataType: 'JSON', // Add datatype as JSON, optional still for good practice
 data:{
  _token: _token,
  gclid: gclid,
  token: token
},

在 data {} 中,您将值(gclid、_token 和 sessionStorage 令牌)作为 JSON 格式的数据传递给 laravel 控制器

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Laravel中使用Ajax发布请求将图像插入db?

在Laravel中使用jquery的ajax请求检索数据

Laravel:如何在数据表中使用Ajax对数据进行排序?

我如何在 Laravel 中使用 Ajax?

如何在 Laravel 8 中使用 Ajax

如何在 Promise & Ajax 中使用数据

如何在Yii中使用CGridview使用Ajax请求保存数据

如何在Ajax中使用插入模式

如何在Laravel中使用jQuery Ajax保存多个表单数据?

如何在API中使用Ajax将Laravel表单数据发布到控制器

如何从Laravel中的Ajax请求获取数据

如何在javascript中使用单个ajax调用将数据插入更多AngularJS控制器

如何在Laravel中使用jQuery ajax请求自动添加X-CSRF-TOKEN

我如何在数据表的 ajax 请求的列部分中使用变量

如何在JSP中使用JavaScript的sessionstorage?

如何在Laravel中使用补丁请求?

如何在Laravel框架中使用Eloquent将文件插入数据库?

如何在 Laravel 中使用附加或同步方法在数据透视表中插入多个值

在 Laravel 中使用 Ajax 显示数据

在Laravel中使用Ajax实时获取数据

如何在每个新请求中使用Ajax数据源进行select2下拉?

如何在Laravel中使用Ajax删除图像

如何在Laravel 5.3中使用Ajax

如何使用Laravel,Bootstrap Modal和Ajax将数据发布并插入到DB中

如何使用laravel通过jquery ajax将表单值插入数据库?

如何使用AJAX和LARAVEL在MySQL中插入数据而不刷新页面

如何在JS / jQuery函数中使用返回的AJAX数据

如何在Ajax中使用FormData发送String数据

如何在php脚本中使用通过ajax传递的数据?