我正在尝试使用来自不同服务器的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
}
});
});
由于某种原因,我无法调用该文件,可能是因为其他格式的原因,有什么线索吗?
最佳答案
几个问题:
json_encode()
的结果是一个字符串,而不是一个数组。所以不要使用print_r()
你应该使用echo
或print
.- 将 JSON 封装在
<pre>
中标签使 JSON 无效,因此它无法被 jQuery 解析。您应该删除<pre>
/</pre>
标签。 - 为了获得最佳结果,请确保在输出 JSON 数据之前设置内容类型 header :
header('Content-Type: application/json');
.
尝试一下,让我们知道是否可以解决问题。
关于php - Ajax 调用 php 文件中的外部 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44031729/