php文件中外部json对象的Ajax调用
我试图用ajax解析外部php文件中的json文件,该文件来自不同的服务器,技术上是同一个提供者,但我认为这并不重要 无论如何,我在wordpress网站上从数据库创建json文件的代码如下:php文件中外部json对象的Ajax调用,php,jquery,mysql,json,ajax,Php,Jquery,Mysql,Json,Ajax,我试图用ajax解析外部php文件中的json文件,该文件来自不同的服务器,技术上是同一个提供者,但我认为这并不重要 无论如何,我在wordpress网站上从数据库创建json文件的代码如下: <pre> <?php global $wpdb; if(!isset($wpdb)) { require_once('wp-config.
<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>
由于某些原因,我无法调用该文件,可能是因为其他内容的格式,有什么线索吗?几个问题:
json_encode的结果是字符串,而不是数组。因此,您应该使用echo或print来代替print\r。
将JSON包装在标记中。
为了获得最佳结果,请确保在输出JSON数据之前设置内容类型标题:标题'content-type:application/JSON';。
尝试一下,然后告诉我们它是否解决了问题。检查文档:
跨域默认值:对于相同的域请求为false,对于跨域请求为true
类型:布尔型
如果您希望在同一服务器上强制执行跨域请求(如JSONP)
域,将crossDomain的值设置为true。这就允许
例如,服务器端重定向到另一个域。新增版本:
1.5
非常感谢。我什么都不懂。我应该把像“Content-Type:application/json”这样的头放在哪里;。?在php脚本中还是在.htaccess文件中?就在乞讨的时候?在php tag?头之前是一个php函数,所以它必须在php文件中,介于两者之间。由于header函数告诉浏览器所需内容,因此必须在发送任何输出之前调用它,否则将收到headers ready sent警告。
$(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
}
});
});