【问题标题】:Passing full URL as parameter in Ajax call - Laravel 5.1 routing在 Ajax 调用中传递完整 URL 作为参数 - Laravel 5.1 路由
【发布时间】:2015-08-21 10:34:41
【问题描述】:

编辑:我想我应该添加 Laravel 5.1 件!

Ajax 调用由如下路由处理:

Route::get('ajax/{action}', ['uses' => 'AjaxController@helpers', 'as' => 'ajax.helpers']);

我希望 encodeURIcompponent() 函数能够完成这项工作,但是当我在下面调用时,Laravel 5.1 返回 404。如果 uri 不包含编码的 http:// 它可以工作。

这就是 ajax 调用中的 url 返回 404 的样子:

http://my.app/ajax/act=url&u=http%3A%2F%2Fgoogle.com

我有一个 ajax 调用需要检查我作为参数传递的 url

用户将在表单字段中输入一个 url,我将其捕获在一个名为 website 的变量中

我的 ajax 调用需要接受:

'/ajax/act=url&u=' + website;

我这样做是为了构建 URL,然后传递给 jQuery $.getJSON 调用:

var url = '/ajax/act=url&&u=' + encodeURIComponent(website);

但我从服务器返回 404。如果我删除协议 (http://),它就可以正常工作。

如何在 ajax 调用中将完整的 url 作为参数传递?谢谢!

【问题讨论】:

    标签: php jquery ajax laravel-5.1


    【解决方案1】:
    var url = '/ajax/?act=url&u=' + encodeURIComponent(website);
    

    这应该可行!

    【讨论】:

    • 嗨@Durim Jusaj 我也这么认为。但是我忘了提到 Laravel 5.1 部分!
    【解决方案2】:

    您的网址有误。您需要:

    var url = '/ajax/act=url&u=' + encodeURIComponent(website);
    

    代替:

    var url = '/ajax/act=url&&u=' + encodeURIComponent(website);
    

    您有 && 而不是 &,但是您告诉我们您的 ajax 调用接受:

    '/ajax/action=url&u=' + website;
    

    【讨论】:

      【解决方案3】:
      var url = encodeURI(website);
      
      $.ajax({
                   url: "your url here",
                              type: "POST",
                              dataType: "HTML",
                              async: false,
                              data: {"u": url},
                              success: function(data) {
                                  //                          
                              }
                          });
      

      尝试更改获取帖子

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-16
        • 2018-07-26
        • 2015-10-31
        • 2020-02-05
        • 2016-02-21
        • 1970-01-01
        • 2014-01-06
        相关资源
        最近更新 更多