JAVASCRIPT编辑标题来调用返回json的api

时间:2017-05-20 00:18:20

标签: javascript jquery json ajax cors

我正在尝试使用外部托管的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;
});

Firebug Headers

打开" OPTIONS"的响应时在firebug中的url,它返回我想要的数据。如何在javascript中使用该数据?

2 个答案:

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