将数据从服务器传递到离子应用程序

时间:2016-11-02 11:10:48

标签: javascript php ionic-framework httprequest ionic2

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

这是代码:

离子应用程序中的表单:

    <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!";
 }

有人可以帮助我吗?

感谢的

1 个答案:

答案 0 :(得分:0)

使用此...

 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数据发送到应用..