我正在尝试使用JSON从API获取一些数据 来自外部API
API网址就像这样
http://60.62.62.62:8586/api/village/197571446817
数据是这样的:
{
"userId": 197571446817,
"currentHomeId": 197571446817,
"clanId": 15489654523,
"clanName": "vlsn_nsmr",
"clanBadge": 1744850005,
"clanRole": "title",
"clanWar": 7,
"numberLogin": 0,
"secondsLogin": 0,
"league": "CRYSTAL_III",
"townHallLevel": 9,
"userName": "somename",
"level": 114,
"XP": 5516,
"gems": -234935969,
"freeGems": 0,
"attackRating": -721481846,
"attackKFactor": -1987233268,
"trophies": 1925,
"attackWinCount": 308,
"attackLoseCount": -1998035130,
"defenseWinCount": 3,
"defenseLoseCount": -840248882,
"nameChosenByUser": true,
"nameChanged": 0,
"villageImg": "",
"boughtGems": -1906210374
}
到目前为止一切顺利。但后来我尝试使用getJson获取一些值:
$.getJSON('http://62.4.23.229:8338/api/village/197571446817', function(data) {
console.log(data.userName)
}
我明白了:
XMLHttpRequest无法加载url请求的资源上没有“Access-Control-Allow-Origin”标头Origin
我尝试使用jsonp,但运气不好似乎这个API不喜欢回调。有谁知道如何从该API获取该信息?
答案 0 :(得分:1)
错误消息 Access-Control-Allow-Origin 表示API在Header中具有安全约束。您需要联系您的api提供商以获取更多详细信息。
答案 1 :(得分:1)
您正在对一个与您的网页所在位置不同的域执行XMLHttpRequest。因此浏览器会阻止它,因为出于安全原因,它通常允许同一来源的请求。
可能的解决方案: - How can I achieve this by using CORS.
启用CORS的最简单方法是将必要的标头(作为Access-Control-Allow-Origin)添加到服务器的响应中
我还建议检查它是否只是目标域中的拼写错误。