在 Ajax 调用中传递完整 URL 作为参数 - Laravel 5.1 路由

Posted

技术标签:

【中文标题】在 Ajax 调用中传递完整 URL 作为参数 - Laravel 5.1 路由【英文标题】:Passing full URL as parameter in Ajax call - Laravel 5.1 routing 【发布时间】: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 作为参数传递?谢谢!

【问题讨论】:

【参考方案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) 
                            //                          
                        
                    );

尝试更改获取帖子

【讨论】:

以上是关于在 Ajax 调用中传递完整 URL 作为参数 - Laravel 5.1 路由的主要内容,如果未能解决你的问题,请参考以下文章

ajax,get和post的区别

从 ajax 调用传递到 wcf 的参数被接收为 null

将数组作为url参数传递并重定向到新页面

如何在调用WebService方法时,传递对象数组参数

C#-WebForm-AJAX阿贾克斯★★★★★ajax的完整结构★★★★★

通过ajax调用传递动态javascript参数