将完整的 URL 作为 Ajax 类中的参数传递 - Laravel 5.1 例程

Passing full URL as parameter in Ajax call - Laravel 5.1 routing

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

Ajax 呼叫正在由如下路由处理:

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

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

这就是 ajax 调用中的 url 的样子 returns 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 作为参数传递?谢谢!

您的 URL 有误。您需要:

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

而不是:

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

你有 && 而不是 &,但是你告诉我们你的 ajax 呼叫接受:

'/ajax/action=url&u=' + website;
var url = encodeURI(website);

$.ajax({
             url: "your url here",
                        type: "POST",
                        dataType: "HTML",
                        async: false,
                        data: {"u": url},
                        success: function(data) {
                            //                          
                        }
                    });

尝试将 get 更改为 post

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

这应该有效!