GVKun编程网logo

Ajax 搜索栏不适用于 Laravel 8(ajax搜索框)

16

这篇文章主要围绕Ajax搜索栏不适用于Laravel8和ajax搜索框展开,旨在为您提供一份详细的参考资料。我们将全面介绍Ajax搜索栏不适用于Laravel8的优缺点,解答ajax搜索框的相关问题,

这篇文章主要围绕Ajax 搜索栏不适用于 Laravel 8ajax搜索框展开,旨在为您提供一份详细的参考资料。我们将全面介绍Ajax 搜索栏不适用于 Laravel 8的优缺点,解答ajax搜索框的相关问题,同时也会为您带来ActionFilter 不适用于 AJAX 调用、Ajax GET请求不适用于Flask、AJax不适用于引导选择、Bug Swup.loadPage 不适用于我的 Laravel 项目的实用方法。

本文目录一览:

Ajax 搜索栏不适用于 Laravel 8(ajax搜索框)

Ajax 搜索栏不适用于 Laravel 8(ajax搜索框)

如何解决Ajax 搜索栏不适用于 Laravel 8?

我试图在我的 Laravel 项目中使用 ajax 为我的供应商添加一个搜索栏,我在前台的产品搜索栏中使用它时遇到了问题,所以我尝试在后台执行相同的步骤但它似乎不起作用,没有显示错误,所以我不知道出了什么问题,请帮助我 这是我的脚本

<script>
 $(document).ready(function(){
    fetch_customer_data();
    function fetch_customer_data(query = '''')
    {
        $.ajax({
            url:"{{ route(''fournisseurSearch'') }}",method:''GET'',data: {query: query},dataType:''json'',success: function(data) {
                if (data.success) {
                    $(''#result'').html(data.html);
                } else {
                    alert(data.message);
                }
            }
        })
    }
    $(document).on(''keyup'',''#keyword'',function($e){ // define event parameter
            var query = $(this).val();

            fetch_customer_data(query);
            $e.preventDefault();
    });
});
</script>

这是我的输入

<input type="text" placeholder="Cherchez ici..."id="keyword" name="keyword" >
                                            

这是我的控制器

try{
        if($request->ajax()) {
            $query = $request->get(''query'');
            if(empty($query)) {
                return back()->withError(''Aucun resultat trouvée'');
             }
            else {
                $f = Fournisseur::where(''nomSociete'',''LIKE'',''%''.$query.''%'')
                            ->orWhere(''activite'',''%''.$query.''%'')
                            ->orWhere(''adresse'',''%''.$query.''%'')
                            ->get();

            }
            $total = $f->count();
            $html = view(''back.fournisseurs.search_result'',[
                    ''fournisseurs'' => $f,])->render();


            return response()->json([
                ''success'' => true,''html'' => $html,''total'' => $total,],200);
        } else {
            return response()->json([
                ''success'' => false,''message'' => "Something went wrong!",403);
        }
    }catch (Exception $e) {
        // Something else happened,completely unrelated to Stripe
        Alert::error(''Erreur '',$e->getMessage())->autoClose(false);
        return redirect()->back();
    }catch (Error $e) {
        // Something else happened,$e->getMessage())->autoClose(false);
        return redirect()->back();
    }




and my route 
route::get(''fournisseurs/search'',''FournisseurController@search'')->name(''fournisseurSearch'');

编辑 这是我的标签显示的内容

result

error

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

ActionFilter 不适用于 AJAX 调用

ActionFilter 不适用于 AJAX 调用

如何解决ActionFilter 不适用于 AJAX 调用?

我对 DataTable 进行了 AJAX 调用,该调用在我的控制器中调用了一个返回类型为 JsonResult 的方法。如果用户的会话已过期,我会收到 JSON 错误警报并且站点会挂起。我正在尝试使用 ActionFilter 在处理请求之前检查用户的会话是否已过期。它在方法返回类型为 ActionResult 时起作用。但是,当返回类型为 JsonResult 时,我看到错误并挂起。跟踪时,我看到正在调用 ActionFilter 并且代码工作正常,但它不会像它应该的那样将用户重定向到登录页面。有没有办法中止 AJAX 调用服务器端并按预期重定向用户?

操作过滤器

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            HttpContext ctx = HttpContext.Current;
            if (ctx.Session != null)
            {
                if (ctx.Session.IsNewSession)
                {
                    string cookieHeaders = ctx.Request.Headers["Cookie"];

                    if ((null != cookieHeaders) && (cookieHeaders.IndexOf("ASP.NET_SessionId") >= 0))
                    {
                        filterContext.Result = new RedirectResult("~/Account/Login");
                        return;
                    }
                }
            }
            base.OnActionExecuting(filterContext);
        }

解决方法

我们可以检查请求是否是 Ajax,然后返回 json 结果,并在客户端检查服务器是否返回错误重定向到登录页面,如:

if ((null != cookieHeaders) && (cookieHeaders.IndexOf("ASP.NET_SessionId") >= 0))
{
    if (filterContext.HttpContext.Request.IsAjaxRequest())
    {
            
          filterContext.Result = new JsonResult
          {
              Data = new {Error = "UnAutorized",Url = Url.Action("Login","Account")},JsonRequestBehavior = JsonRequestBehavior.AllowGet
          };

          return;
     }
     else
     {
         filterContext.Result = new RedirectResult("~/Account/Login");
         return;
     }
}

现在对于正常请求,它将重定向到登录页面,对于 ajax 调用,将返回带有未经授权的错误消息和 URL 的 json 响应,应该重定向到哪里,然后在客户端,我们可以像这样重定向:

window.location.href = response.Url;

Ajax GET请求不适用于Flask

Ajax GET请求不适用于Flask

我从html中接收来自用户的一堆输入,然后将其传递给ajax查询以获取响应。

$.ajax({  url:"http://0.0.0.0:8080/getReport",  type:"GET",  data:JSON.stringify(out),  dataType:"json",  contentType:"application/json"})

这是满足上述要求的Flask代码。

@app.route(''/getReport'', methods=[''GET''])def report():    return Response(''this is a sample response'')

上面的方法无法通过get找到到“报告”的路线。但是,它可以在POST请求中找到它。

这是我得到的日志

  127.0.0.1 - - [25/Apr/2016 13:00:03] "GET /getReport?{%22insertion_id%22:%22%22,%22start%22:%22%22,%22end%22:%22%22} HTTP/1.1" 400 -

错误的请求..我在这里做错了什么?

答案1

小编典典

GET请求没有contentType (*),并且不是JSON编码的,而是URL编码的(普通,常规键值对)。

这意味着您可以简单地使用jQuery的默认值。

$.get("http://0.0.0.0:8080/getReport", out).done(function (data) {    // request finished});

这将导致如下请求:

GET /getReport?insertion_id=&start=&end= HTTP/1.1

服务器将很容易理解这一点。


(*)这是因为Content-Type标头确定了请求正文的类型。GET请求没有请求正文。

AJax不适用于引导选择

AJax不适用于引导选择

我找到了flask-jquery-ajax示例,其中用户从车辆“ Make”下拉菜单中选择一个项目,通过向AJAX请求选择的车型列表来填充车辆“ Model”下拉菜单。

我尝试用 bootstrap-select 替换下拉菜单,并且在第二个下拉菜单中添加 class =“ selectpicker form-
control”后,
在选择了第一个下拉菜单后,不再填充任何内容。

这是HTML模板:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Flask Jquery AJAX Drop Down Menu Example</title>

    <link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" >
    <link rel="stylesheet" type="text/css" href=//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.2/css/bootstrap-select.min.css>
    <link rel="stylesheet" href="{{ url_for('static',filename='web.css') }}">

    <!-- Custom styles for this template -->
    <link href="http://getbootstrap.com/examples/non-responsive/non-responsive.css" rel="stylesheet">
</head>
<body>
    <h1>Select Vehicle</h1>

    <formaction="/" method="POST" >
      <div>
    <span>Make:</span>
    {{ form.make(id="make_select",) }}
      </div>

      <div>
    <span>Model:</span>
    {{ form.model(id="model_select",) }}
      </div>
        <button type="submit">Submit</button>
    </form>

    {% if chosen_make %}
        <h2>You selected:</h2>
        <ul>
            <li>Make ID: {{ chosen_make }}</li>
            <li>Model ID: {{ chosen_model }}</li>
        </ul>
    {% endif %}

  <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
  <script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
  <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.2/js/bootstrap-select.min.js"></script>
  <script>
    $('.selectpicker').selectpicker();
  </script> 
  <script src="/assets/vehicle.js"></script>
</body>
</html>

这是负责填充下拉菜单的JavaScript 代码:

$("#make_select").change(function() {
    var make_id = $(this).find(":selected").val();
    var request = $.ajax({
        type: 'GET',url: '/models/' + make_id + '/',});
    request.done(function(data){
        var option_list = [["","--- Select One ---"]].concat(data);

        $("#model_select").empty();
        for (var i = 0; i < option_list.length; i++) {
            $("#model_select").append(
                $("<option></option>").attr(
                    "value",option_list[i][0]).text(option_list[i][1])
            );
        }
    });
});

为什么 类=“selectpicker形式控制”引导选 事业的第二个下拉菜单中得到不再填充?

Bug Swup.loadPage 不适用于我的 Laravel 项目

Bug Swup.loadPage 不适用于我的 Laravel 项目

如何解决Bug Swup.loadPage 不适用于我的 Laravel 项目?

我需要有关 Javascript Swup 库的帮助。 单击“下一步”按钮时,Swup 启动动画但不加载下一页。 我使用 Laravel 框架。

这是我的布局,其中包含 Swup 的容器:

master.blade.php

当单击按钮第 32 行时,我调用下面的脚本

billing.blade.php

swap.loadPage 第 97 行应该加载下面的页面,但只有动画开始,页面永远不会加载

main.js

shipping.blade.php

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

关于Ajax 搜索栏不适用于 Laravel 8ajax搜索框的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于ActionFilter 不适用于 AJAX 调用、Ajax GET请求不适用于Flask、AJax不适用于引导选择、Bug Swup.loadPage 不适用于我的 Laravel 项目等相关内容,可以在本站寻找。

本文标签: