Ajax读取PHP脚本而不是JSON输出


Ajax reading PHP script instead of JSON output

我目前正在尝试使用Ajax在javascript中使用我的php数组。即使我已经对数组进行了 json 编码,设置了 php 内容类型和 ajax 数据类型,看起来 javascript 仍在尝试处理我的 php 脚本而不是它输出的 json。这是因为我总是收到"意外令牌<"错误(我的 php 脚本的开头)。

这是我的 ajax:

$.ajax({
  type: 'GET',
  cache: false,
  url: 'api.php',
  dataType: "json",
  error: function(jqXHR, textStatus, errorThrown) {alert(errorThrown);},
  success: function(data) {
    alert(data);}
}); 

这是我的php(文件名是api.php):

<?php
header('Content-Type: application/json');
$aliases = array('angry','birds');
echo json_encode($aliases);
?>

我知道我的 php 输出正确的 json 格式,因为当我在浏览器中运行它时,输出是["angry","birds"]

似乎无法弄清楚发生了什么。

您似乎正在尝试通过文件系统发送请求。您正在获取原始源代码,因为服务器/PHP不会解析您的文件。

如果您通过文件系统(例如file://some/path/test.html)打开页面,则请求也会通过文件系统发送。要么从服务器打开页面,要么需要指定完全限定的位置。即在您的情况下,类似于http://localhost/api.php.