php - Ajax 调用 php 文件中的外部 json 对象

标签 php jquery mysql json ajax

我正在尝试使用来自不同服务器的ajax解析外部php文件中的json文件(技术上是相同的提供程序,但我认为这并不重要)。

无论如何,我在 WordPress 网站中从数据库创建 json 文件的代码如下:

        <pre>
            <?php


            global $wpdb;
            if(!isset($wpdb))
            {
                require_once('wp-config.php');
                require_once('wp-includes/wp-db.php');
            }

            $result = $wpdb->get_results ( "SELECT * FROM " . $table_prefix . "some_row" );
            print_r(json_encode($result, JSON_UNESCAPED_SLASHES));
            ?>
        </pre>

该文件的 URL 为(示例)http://somewebsite.com/phpjson.php .

我从另一个网址调用(示例)http://app.someotherwebsite.com这样:

$(document).ready(function() {
    $(function(){
            $.ajax({
                url: "http://somewebsite.com/phpjson.php",
                type: "GET",
                dataType: "JSON",
                cache: false,
                success: function(markers) {
                   $.each(markers,function(i, val){
                   //do something
              }
    });
});

由于某种原因,我无法调用该文件,可能是因为其他格式的原因,有什么线索吗?

最佳答案

几个问题:

  1. json_encode() 的结果是一个字符串,而不是一个数组。所以不要使用 print_r()你应该使用echoprint .
  2. 将 JSON 封装在 <pre> 中标签使 JSON 无效,因此它无法被 jQuery 解析。您应该删除 <pre>/</pre>标签。
  3. 为了获得最佳结果,请确保在输出 JSON 数据之前设置内容类型 header :header('Content-Type: application/json'); .

尝试一下,让我们知道是否可以解决问题。

关于php - Ajax 调用 php 文件中的外部 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44031729/

相关文章:

php - 强制 PHP 在继续之前等待数据库操作完成

jQuery 包含

mysql - 获取最新数据——优化SQL查询

PHP 不工作,数据库不更新

php - Codeigniter 将多个文件上传到数据库的不同路径

asp.net - ASP.NET 模式屏幕的最佳选择

php - 使用 time() 函数时间戳查询以获取更多行以附加到当前获取的行。 MySQL/PHP

php - 使用 RoyalSlider 在两个不同的幻灯片中显示 MySQL 数据库结果

php - 用户注册后 Laravel 5.4 Passport 重定向

jquery - 如何缩小 jQuery 代码?