我使用fetch
获得以下代码var url1 = 'http://jsonplaceholder.typicode.com/users';
var url2 = 'http://teaconcepts.net/temp/api_test.php';
fetch(url1)
.then(function (result){
console.log("Result received");
return result.json();
}).then(function(data){
// console.log("data received",data[1]['name']);
console.log("data received",data);
}).catch(function(error){
console.log("Error in Fetch",error.message);
});
我从这两个网址中获取有效的JSON数据,但结构略有不同
var url1 = 'http://jsonplaceholder.typicode.com/users';
var url2 = 'http://teaconcepts.net/temp/api_test.php';
如果我从URL1加载数据,一切都很好。但是如果我加载url2我会收到错误"无法获取"
是什么给了???
答案 0 :(得分:2)
这里的问题是同源政策。如果您在http://teaconcepts.net
上运行此JavaScript,它将会起作用。或者,您可以让teaconcepts.net以Access-Control-Allow-Origin
标题回复以允许任何来源或特定来源(例如jsbin.com和stackoverflow.com)
答案 1 :(得分:2)
此问题第二个网址是编码问题,请在此处查看第二个网址
将您的网址粘贴到 https://jsonformatter.curiousconcept.com/并检查返回json类型的问题。或者见下图result of second url json
如果您为该php文件创作,请参阅以下主题解决问题php returns invalid json