Javascript奇怪的Fetch()问题,在特定的JSON数据/格式上失败

时间:2016-08-13 16:52:02

标签: javascript json

我使用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我会收到错误"无法获取"

是什么给了???

请参阅演示:http://jsbin.com/yaxecewopu/1/edit?js,console

2 个答案:

答案 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