【问题标题】:passing data from server to ionic app将数据从服务器传递到离子应用程序
【发布时间】:2025-09-01 10:00:02
【问题描述】:

我正在使用 ionic 2 开发一个混合应用程序,我必须将数据从服务器(PHP 文件)传递到 ionic 应用程序。 我知道我必须使用 HTTP 请求在服务器和应用程序之间传递数据,我在网上搜索并找到了一个适合我的代码示例,但问题是此代码使用函数“echo”,我会将变量的值传递给应用程序和之后,因为我需要修改它。

这是代码:

离子应用程序中的表单:

    <ion-content padding="true">
        <form ng-submit="submit()">
            <label class="item item-input item-stacked-label">
                <span class="input-label">username</span>
                <input type="text" name="username" placeholder="enter username" ng-model="data.username">
            </label>

            <input class="button button-block button-positive" type="submit" name="submit" value="Submit to server">                    
        </form>

        <div class="card">
            <div class="item item-text-wrap">
                Response: <b ng-bind="response"></b>
            </div>
        </div>
    </ion-content>

app.js 中的控制器:

.controller('AppCtrl', function($scope, $http) {
    $scope.data = {};

    $scope.submit = function(){
        var link = 'http://localhost/ShuttleFIX/api.php';

        $http.post(link, {username : $scope.data.username}).then(function (res){
            $scope.response = res.data;
        });
    };
});

服务器上的PHP文件:

 if (isset($_SERVER['HTTP_ORIGIN'])) {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Max-Age: 86400');    // cache for 1 day
    }
    if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
            header("Access-Control-Allow-Methods: GET, POST, OPTIONS");         

        if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
            header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

        exit(0);
    }
    $postdata = file_get_contents("php://input");
 if (isset($postdata)) {
 $request = json_decode($postdata);
 $username = $request->username;

 if ($username != "") {
 echo "Server returns: " . $username;
 }
 else {
 echo "Empty username parameter!";
 }
 }
 else {
 echo "Not called properly with username parameter!";
 }

有人可以帮我吗?

谢谢

【问题讨论】:

  • 不清楚你想要什么..使用json发送和接收数据..解释一下..

标签: javascript php ionic-framework httprequest ionic2


【解决方案1】:

使用这个...

 if ($username != "") {
    json_encode(array("result"=>$username));
 }
 else {
    json_encode(array("result"=>"No Data"));
 }
 }
 else {
    json_encode(array("result"=>"Not called properly with username parameter!"));
 }

现在在控制器中..

$scope.username = response[0].result

现在您可以使用$scope.username 编写您的逻辑。

您还需要将json 数据发送到应用程序..

【讨论】:

  • 谢谢,我正在尝试,只有一个问题,如果我想将用户名打印到应用程序,我必须更改这一行“响应:" 用用户名更改响应?谢谢
  • 好的,你写的代码有错误,控制台告诉我:TypeError: Cannot read property 'result' of undefined
  • 你能在开发者工具中展示即将到来的响应吗?打开开发者工具ctrl+shift+j 进入网络并发出请求...现在看到请求并单击它..然后转到响应选项卡..它将显示收到的响应。
  • “此请求没有可用的响应数据”
最近更新 更多