[英]Ajax call on an external json object within a php file
我正在尝试使用来自不同服务器(技术上是相同的提供程序,但我认为并不重要)的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()
的结果是一个字符串,而不是一个数组。 因此,应该使用echo
或print
而不是使用print_r()
。 <pre>
标记中会使JSON无效,因此jQuery无法对其进行解析。 您应该删除<pre>
/ </pre>
标记。 header('Content-Type: application/json');
。 试试看,让我们知道它是否可以解决问题。
检查文档: http : //api.jquery.com/jQuery.ajax/
crossDomain(默认值:对于同域请求为false,对于跨域请求为true)
类型:布尔
如果您希望在同一域上强制执行crossDomain请求(例如JSONP),请将crossDomain的值设置为true。 例如,这允许将服务器端重定向到另一个域。 (添加的版本:1.5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.