2015-08-21 10:34
浏览 224

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

EDIT: I guess I should have added the Laravel 5.1 piece!

The Ajax call is being handled by a route as follows:

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

I would expect the encodeURIcompponent() function to make this work, but Laravel 5.1 returns 404 when I call below. If the uri does not contain the encoded http:// it works.

This is what the url in ajax call looks like that returns 404:

I have an ajax call that needs to check a url I am passing as a parameter

The user will input a url in a form field, which I capture in a variable called website

My ajax call needs to accept:

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

I am doing this to build the url I then pass to a jQuery $.getJSON call:

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

But I get 404 back from the server. If I remove the protocol (http://) it works just fine.

How do I pass the full url as a parameter in the ajax call? Thanks!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dsyrdwdbo47282676
    dsyrdwdbo47282676 2015-08-21 10:43
    var url = '/ajax/?act=url&u=' + encodeURIComponent(website);

    this should work!

    点赞 评论
  • dongyuli4538
    dongyuli4538 2015-08-21 10:39

    You have an error in your URL. You need to have:

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

    Instead of:

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

    You had && instead of &, however you told us that your ajax call accepts:

    '/ajax/action=url&u=' + website;
    点赞 评论
  • dpi96151
    dpi96151 2015-08-21 10:41
    var url = encodeURI(website);
                 url: "your url here",
                            type: "POST",
                            dataType: "HTML",
                            async: false,
                            data: {"u": url},
                            success: function(data) {

    try changing get to post

    点赞 评论