【问题标题】:Laravel API - Ionic Submitting FormLaravel API - 离子提交表单
【发布时间】:2017-05-13 03:14:17
【问题描述】:

希望这个问题听起来不会太业余!只是寻找一些关于如何得到这个的建议。我非常感谢任何帮助:

我已经构建了一个 Ionic 应用程序并使用 Laravel 作为我的 API。我连接这些没有问题,并且提出了很多要求。我的问题是如何以适当的方式最好地将大块文本提交给 API。

例如,我有这样一条路线:

Route::post('/api/v1/task/add/{taskdescription}',function($taskdescription) {
  DB::insert('INSERT INTO tasks(task) VALUES (?)', [$taskdescription]);
});

然后在我的 Ionic 控制器中,我有这个:

$scope.saveNewTask = function() {
    $http.post(API_URL+'task/add/'+$scope.data.taskdescription)
        .success(function() {
            //Success Function
        })
        .error(function(err) {
            //Error Function
        });
};

然而,这个任务描述...我希望能够输入 html 字符和 % 符号和 /,但是每当我添加诸如 % 或 / 之类的东西时,它就不能像 $http 一样正常工作。发布网址然后搞砸了。有谁知道我如何“逃脱”或类似的方式,以便能够通过这样的 API 调用发布复杂且可能很长的数据片段?

也许有更好的方法来发送我不知道的这些数据?

【问题讨论】:

    标签: php laravel post ionic-framework http-post


    【解决方案1】:

    您可以使用帖子正文在 Ionic 中发送您的数据:

    $http.post(API_URL+'task/add', {taskDescription: $scope.data.taskdescription})
        .success(function() {
            //Success Function
        })
        .error(function(err) {
            //Error Function
        });
    

    在 Laravel 中你可以使用 Request 对象来访问数据:

    Route::post('/api/v1/task/add', function(Request $request)     {
        DB::table('tasks')->insert(array('task' => $request->input('taskDescription')));
    });
    

    旁注:阅读this answer 了解 GET 和 POST 请求之间的差异以及在这两种情况下如何传递值是很好的。

    【讨论】:

    • 好的...看起来它可以工作。我现在就试试看,然后告诉你。
    • 所以我在 Ionic 设置和 Laravel API 中都使用了您的代码。我可以提交而不会收到错误,但我的数据库中没有实际的帖子。我在 $scope.data.taskdescription 的成功函数中创建了一个 console.log,它完全没问题。你知道还有什么问题吗?
    • 我第一次尝试时,确实收到有关内容类型的错误...所以我将其添加到我的 Laravel API 中: header('Access-Control-Allow-Headers: Authorization, Content-类型');我没有再次收到错误
    • 对不起,你必须使用 $request->input('taskDescription') 或 $data = $request->all(); $data['taskDescription'];
    • 嗯...我仍然无法让它添加任何内容。我也没有收到任何错误,它只是没有做任何事情。我还尝试基于此将 http 请求分成两部分:stackoverflow.com/a/29272987/4470939 但这也没有什么区别。成功函数中的 console.log 仍然显示正确的任务描述。还有其他想法吗?
    猜你喜欢
    • 2019-02-06
    • 2020-02-25
    • 2014-08-07
    • 2015-10-25
    • 2018-04-09
    • 2018-05-10
    • 1970-01-01
    • 2016-12-10
    • 2016-05-29
    相关资源
    最近更新 更多