2017-04-06 50 views
-1

我的PHP(SLIM框架)正在生成JSON文件。我检查了JSON验证器上的文件,一切都很好。当我在浏览器中输入index.html(我的本地AngularJS主文件)时,它不会自动显示JSON文件,而会询问我是否打开/保存该文件。我使用Xampp的Apache虚拟主机MySQL。我希望浏览器在不保存本地文件的情况下显示JSON,这样,当我完成项目并将其附加到域时,任何人都可以在他的计算机上显示JSON内容。浏览器将不会自动显示JSON内容

这是php文件:

`<?php 
use \Psr\Http\Message\ServerRequestInterface as Request; 
use \Psr\Http\Message\ResponseInterface as Response; 

$app = new \Slim\App; 

// Get All Customers 
$app->get('/api/calendar', function (Request $request, Response $response) { 

    // echo 'CALENDAR'; }); 

    $sql = "SELECT * FROM days"; 

    try { 
    // Get DB Object 
    $dbcalendar = new dbcalendar(); 
    //Connect 
    $dbcalendar = $dbcalendar->connect(); 

    $stmt = $dbcalendar->query($sql); 
    $dbcalendar = $stmt->fetchAll(PDO::FETCH_OBJ); 
    // $dbcalendar = null; 

    return $response->withJson($dbcalendar); 

    } catch(PDOException $e) { 
     $error = array('error' => array('text' => $e->getMessage())); 
     return $response->withJson($error,500); 
    } 
});` 

确定。根据Fred的建议,我已经更改了php文件(我希望是正确的):

`<?php 
use \Psr\Http\Message\ServerRequestInterface as Request; 
use \Psr\Http\Message\ResponseInterface as Response; 

$app = new \Slim\App; 

// Get All Customers 
$app->get('/api/calendar', function (Request $request, Response $response) { 

    // echo 'CALENDAR'; }); 

    $sql = "SELECT * FROM days"; 

    try { 
    // Get DB Object 
    $dbcalendar = new dbcalendar(); 
    //Connect 
    $dbcalendar = $dbcalendar->connect(); 

    $stmt = $dbcalendar->query($sql); 
    $dbcalendar = $stmt->fetchAll(PDO::FETCH_OBJ); 
    // $dbcalendar = null; 

    return $response->withJson($dbcalendar); 
    header('Content-type: application/json'); 

    } catch(PDOException $e) { 
     $error = array('error' => array('text' => $e->getMessage())); 
     return $response->withJson($error,500); 
    } 
});` 

但是仍然没有任何变化。

+0

请提交一些代码 –

+1

您是否向浏览器发送正确的接受和内容类型的标题为json文件? (提示:application/json) – RichardAtHome

回答

0

你输出你的JSON字符串之前,设置页眉,像这样:

header('Content-type: application/json'); 

这应该告诉浏览器期望JSON内容。

+0

它现在可以运行。我在我的php文件的开头添加了以下两行代码:'<?php header(“Access-Control-Allow-Origin:*”); (“Content-Type:application/json; charset = UTF-8”);' – Rico11112016

0

as @RichardAtHome表示在http头中检查你的内容类型,如果没问题的话。 你可以使用JSON.stringify(),然后以普通字符串的形式输出或者做一些格式化。 如果不是这种情况,那么用一些代码解释你的问题,并输出截图。

https://www.w3schools.com/js/js_json_stringify.asp

相关问题