【问题标题】:why my js doesn't read php output as json为什么我的 js 不将 php 输出读取为 json
【发布时间】:2016-07-15 20:15:51
【问题描述】:

我正在使用 AngularJs 和 php,我创建了一个返回 Json 格式的 php 文件,但是当从我的 js 文件中读取它时,输出的是 php 代码!

服务器与 php 一起工作正常,并且 php 文件被完美执行并返回 json 格式,但是当我在应用程序中调用它时,输出是我的 php 文本,这意味着 php 文件被重新作为文本。

我应该怎么做才能使它像 json 一样可读?

这是我的 anjularJs 电话:

$http.get( './templates/connect.php').success(
function(data){
  $scope.cityes=data;  
  alert($scope.cityes); 
});

这是我的 php 文件:

$qry = mysql_query('SELECT capital from countries');
$emparray = array();
while ($rows = mysql_fetch_array($qry)) {
    $emparray[] = $rows;
}
header('Content-type:application/json;charset=utf-8');
echo json_encode($emparray);

【问题讨论】:

  • 控制是否进入success函数?你试过alertconsole.log 吗?
  • 确定你的服务器处理php?
  • 您应该查看 PHP 文件本身,并检查内容开头或结尾的(空白)空格。确保 json 对象是页面上唯一的内容。
  • 假设您的 php 文件是正确的并且请求没有其他问题,请在您的 javascript 文件中使用一些调试。另外我不记得 jquery 中的 $.get 是否自动将数据转换为 json。您可以尝试$.getJSON('<host>', function (data) { console.log(data); }); 或使用 $.ajax 标准来指定数据类型,我总是使用 $.ajax,尽管您编写的越多,您就有更多的控制权。干杯
  • 服务器与 php 一起工作正常,并且 php 文件被完美执行并返回 json 格式,但是当我在应用程序中调用它时,输出是我的 php 文本,这意味着 php 文件被重新定义为文本

标签: javascript php angularjs json


【解决方案1】:

确保您的 PHP 文件以 <?php 开头,并且您的服务器中启用了 PHP 处理器:

<?php
$qry = mysql_query('SELECT capital from countries');
$emparray = array();
while ($rows = mysql_fetch_array($qry)) {
    $emparray[] = $rows;
}
header('Content-type:application/json;charset=utf-8');
echo json_encode($emparray);

More about the PHP syntax and its opening/closing tags.

【讨论】:

  • 小心 Json 标头和 IE,IE 的任何东西都只是.. yuck.
猜你喜欢
  • 2021-08-07
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
相关资源
最近更新 更多