php - 无法使用javascript访问json文件

标签 php javascript json get xmlhttprequest

我想用 javascript 读取此页面的 json 内容:http://89.92.40.250:8010/dreamteam/interface/get_event_detail.php?id=397

所以我开始了这个脚本:

var req = new XMLHttpRequest();
    req.open("GET", "http://89.92.40.250:8010/dreamteam/interface/get_event_detail.php?id=397", true); 
    req.onreadystatechange = monCode;   
    req.send(null);      

    function monCode() { 
        if (req.readyState == 4) { 
            var doc = eval('(' + req.responseText + ')');
            alert(req.responseText);
        }
    } 

当我想显示我使用的内容时 alert(req.responseText);而且我看不到内容。另外我有一个 Firebug 语法错误:语法错误:var doc = eval('(' + req.responseText + ')');

JSONP 不可能。

我们可以提取页面的内容,然后将其转换为 JSON 格式然后解析吗??

最佳答案

如果你不能创建自己的代理,你应该使用 YQL 来避免跨域问题。

这是 id=397 的示例 url,

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D'http%3A%2F%2F89.92.40.250%3A8010%2Fdreamteam%2Finterface%2Fget_event_detail.php%3Fid%3D397'&format=json&diagnostics=true

你可以像这样动态设置id,

var id = 397;
var baseurl = "http://query.yahooapis.com/v1/public/yql?q=";
var q = "select * from json where url = 'http://89.92.40.250:8010/dreamteam/interface/get_event_detail.php?id="+id+"'";  
var url = baseurl + encodeURI(q) + "&format=json&diagnostics=true";
var req = new XMLHttpRequest();
req.open("GET", url, true);
req.onreadystatechange = monCode;
req.send(null);

function monCode() {
    if (req.readyState == 4) {
        var data = JSON.parse(req.responseText).query.results;
        console.log(data);
        //console.log(data.event);
        alert(data.event.title);
    }
}​

here is a jsFiddle DEMO

Usage Limits for YQL

  • 每个应用程序限制(由您的访问 key 标识):每天 100,000 次调用
  • 每个 IP 限制:/v1/public/:每小时 2,000 次调用;/v1/yql/:每小时 20,000 次调用

关于php - 无法使用javascript访问json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571478/

相关文章:

php - 研究redis

javascript - 为 React 中的每个对象呈现 json 对象名称/描述

javascript - 迭代 JSON 以创建 innerHTML 链接

javascript - 用 json 数据填充现有数组

java - json .makeHttpRequest(url, "GET",params) 多次调用时忽略 URL 参数? Android/PHP Web 服务问题

php - 使用 Ajax、MySQL 和 PHP 实现跟随系统

javascript - 从 Action 类将 json 返回到 ajax

javascript - Raphael JS + 点击处理程序

php - 如何停止搜索返回所有结果?

javascript - AngularJS 创建一个指令然后使用另一个指令