XMLHttpRequest 的 JSON API 错误
2015-10-05
65
我尝试使用 JSON 从外部 API 获取一些数据
API URL 如下
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 cannot load url No 'Access-Control-Allow-Origin' header is present on the requested resource Origin
我尝试使用 jsonp,但运气不佳,似乎这个 API 不喜欢回调。有人知道如何从该 API 获取该信息吗?
2个回答
错误消息 Access-Control-Allow-Origin 表示 API 在 Header 中有安全约束。您需要联系您的 api 提供商以获取更多详细信息。
DSA
2015-10-05
您正在向与页面所在域不同的域执行 XMLHttpRequest。因此浏览器会阻止它,因为出于安全原因,它通常允许来自同一来源的请求。
可能的解决方案:-
如何使用 CORS 实现此目的。
启用 CORS 的最简单方法是将必要的标头(如 Access-Control-Allow-Origin)添加到服务器的响应中
我还建议检查它是否只是目标域中的拼写错误。
Viraj Nalawade
2015-10-05