我一直在使用pins从pinterest获取pin的信息。
以下是正在使用的脚本:
<script type="text/javascript">
function getresponse1()
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "https://widgets.pinterest.com/v3/pidgets/pins/info/?pin_ids="+{Pin ID});
alert(xmlHttp.status);
var data=xmlHttp.responseText;
var jsonResponse = JSON.parse(data);
var pin_url="www.pinterest.com/pin/"+pin_id+"/";
var page_name=(jsonResponse["data"][0].pinner.full_name);
alert(page_name);
}
</script>
每当调用XMLHttpRequest()
方法时,返回的状态始终为0,xmlHttp.responseText
为空。
但是当在浏览器中打开link时,响应是正确的并且具有该引脚的所有信息。
编辑:
尝试过实施跨域。但状态返回0。 新脚本:
<script type="text/javascript">
function getresponse1()
{
var xhr = new XMLHttpRequest();
var url="https://widgets.pinterest.com/v3/pidgets/pins/info/?pin_ids=308074430730714588";
if ("withCredentials" in xhr) {
xhr.open("GET", url, true);
} else if (typeof XDomainRequest != "undefined") {
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
alert(xhr.status);
var data=xhr.responseText;
}
</script>
请让我知道我在哪里弄错了。提前致谢
注意:我正在使用Chrome浏览器
答案 0 :(得分:0)
这是一个常见问题,因为您尝试向其他网站(跨域)执行ajax请求。
这根本不是一个新问题,我认为here它已得到很好的解释,这篇文章也提供了一些关于可能解决方案的想法。
答案 1 :(得分:0)
AJAX是异步的,因此您的数据只能从某种回调中获得。
xhr.onload = function() {
if (xhr.status >= 200 && xhr.status < 400) {
var data = JSON.parse(request.responseText);
}
};