在Laravel

时间:2017-11-17 14:26:07

标签: javascript php jquery laravel

我正在尝试从JavaScript中的前端表单中获取三个值,然后将这些值传递给Laravel控制器。

我可以获得两个值(Key和Id)但我无法获得第三个值,因为它是一个URL。如果我评论URL变量,那么我将得到其余的两个值(Key和Id),但如果我将URL传递给其他两个值,那么我在控制器中没有得到任何东西。

我已尝试使用这两个JavaScript方法encodeURIComponent()和encodeURI()来编码给定的https网址,但仍然没有运气。

这是我在JavaScript中的代码:

let get_url = $("#get-url").val();
let get_key = $("#get-key").val();
let get_id = $("#get-area").data('getId');
toastr.remove();
if (get_key) {
    var req = new Image();
    req.src = api_url + 'senddata/' + get_id + '/' + get_key + '/' + get_url;
    console.log(req.src);
       toastr.success(MEASURE.UTILITIES.translate("success_request_successfully_sent"));
        $("#btn-send-data-request").hide();
        $("#block_get_url").hide();
        $("#block_get_key").hide();
        $("#csv_get_request_message").show();
    } else {
        toastr.error(MEASURE.UTILITIES.translate("error_enter_valid_data"));
    }

1 个答案:

答案 0 :(得分:0)

你的get_url包含一个网址,我相信它有https://或http://

当您添加到正在构建的API URL时添加更多/更改ROUTE时,这是一个问题。

例如,您的API网址需要req.src = api_url + 'senddata/' + get_id + '/' + get_key + '/' + get_url;  这就像http://www.laravel.com/api/senddata/123/123/urlhere,但你正在制作类似http://www.laravel.com/api/senddata/123/123/http://urlhere的东西,这意味着你正在改变路线。

要解决此问题,您可以在传递URL之前对URL进行编码。

将您的代码更改为:let get_url = encodeURIComponent($("#get-url").val());

参考:https://www.w3schools.com/jsref/jsref_encodeuricomponent.asp