我想用 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);
}
}
- 每个应用程序限制(由您的访问 key 标识):每天 100,000 次调用
- 每个 IP 限制:/v1/public/:每小时 2,000 次调用;/v1/yql/:每小时 20,000 次调用
关于php - 无法使用javascript访问json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571478/