编辑:我想我应该添加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作为参数传递?谢谢!
答案 0 :(得分:0)
您的网址出错。你需要:
function wpse_199180_canonical_pages( $wp ) {
if ( ! is_admin() && is_page() && isset( $wp->query_vars['paged'] ) ) {
wp_redirect( get_permalink( get_queried_object() ), 301 );
exit;
}
}
add_action( 'wp', 'wpse_199180_canonical_pages' );
而不是:
var url = '/ajax/act=url&u=' + encodeURIComponent(website);
您有var url = '/ajax/act=url&&u=' + encodeURIComponent(website);
而不是&&
,但是您告诉我们您的ajax呼叫接受:
&
答案 1 :(得分:0)
var url = encodeURI(website);
$.ajax({
url: "your url here",
type: "POST",
dataType: "HTML",
async: false,
data: {"u": url},
success: function(data) {
//
}
});
尝试更改发布
答案 2 :(得分:0)
var url = '/ajax/?act=url&u=' + encodeURIComponent(website);
这应该有用!