我正在尝试使用外部托管的API并返回JSON数据。我已经尝试过编辑标题,但我并不完全确定它是否正常工作,因为我仍然收到有关没有CORS标题的警告
来源
var url = "http://hkconsult.in/social_search/keyword_services.php?keyword=throat&callback=test";
$.ajax({
type: 'get',
url: url,
headers: {
"Origin":"http://hkconsult.in/social_search/keyword_services.php?keyword=throat&callback=test",
"Access-Control-Allow-Origin":"http://hkconsult.in/social_search/keyword_services.php?keyword=throat&callback=test"
}
}).done(function(data) {
document.getElementById('cool').innerHTML = data;
});
打开" OPTIONS"的响应时在firebug中的url,它返回我想要的数据。如何在javascript中使用该数据?
答案 0 :(得分:1)
CORS是服务器应该将您作为对您的请求的回复发送给您的标题。
浏览器会执行OPTIONS
请求,以检查之前标题以执行您的实际请求。
您无法获得该OPTIONS
请求的结果,因为它超出了您的代码范围。
如果服务器未设置为发送这些标头,那么您唯一的选择是使用代理页面,该代理页面将使用服务器端脚本代表您执行呼叫。
答案 1 :(得分:0)
根据我的理解,您正在询问如何解析响应JSON而不是CORS
问题。
var data = {
"0": {
"keyword_name": "Sore throat",
"id": "1787",
"user_id": "3350988339",
"user_name": "Nic",
"user_screen_name": "Goldendevi",
"user_profile_pic": "http://pbs.twimg.com/profile_images/840766770633945088/eRRoRZHv_normal.jpg",
"user_location": "",
"post_id": "864553159896838145",
"post_text": "I'm so mad I have a fucking sore throat 🙄",
"post_geo_location": "0",
"post_image": "",
"post_date": "2017-05-16 20:48:30"
},
"1": {
"keyword_name": "Sore throat",
"id": "1788",
"user_id": "63496454",
"user_name": "mariana",
"user_screen_name": "yugyeumie",
"user_profile_pic": "http://pbs.twimg.com/profile_images/863802594132733952/ep0DtSoT_normal.jpg",
"user_location": "jjp; ë§ ìŠ¨",
"post_id": "864552988974747649",
"post_text": "is it possible to die of a sore throat",
"post_geo_location": "0",
"post_image": "",
"post_date": "2017-05-16 20:47:49"
}
};
var res = Object.keys(data).map(item => {return data[item].keyword_name });
console.log(res);