在 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 路由的主要内容,如果未能解决你的问题,请参考以下文章