Javascript 如何从另一个url获取数据?

Javascript 如何从另一个url获取数据?,javascript,jquery,arrays,ajax,Javascript,Jquery,Arrays,Ajax,这是一个两难的问题。我在网页#1()上对这些不同的报告进行投票,并试图从网页#2()中获取一个名为“数据”的特定对象。但是,当我使用此代码时,它只返回整个网页 var tempVar; var reportPage = new XMLHttpRequest(); reportPage.open('GET', '/Trial/viewReport.php?id=1388499', true); reportPage.onreadystatechange = function() { if (

这是一个两难的问题。我在网页#1()上对这些不同的报告进行投票,并试图从网页#2()中获取一个名为“数据”的特定对象。但是,当我使用此代码时,它只返回整个网页

var tempVar;
var reportPage = new XMLHttpRequest();
reportPage.open('GET', '/Trial/viewReport.php?id=1388499', true);
reportPage.onreadystatechange = function() {
   if (reportPage.readyState === 4)  { 
   tempVar = (reportPage.responseText);
  }
};
reportPage.send(null);
我试图从网页#2抓取名为“数据”的对象,并在网页#1上时将其存储在另一个变量中。我有什么办法可以做到这一点吗

这基本上就是网页2中的内容:


...
$(文档).ready(函数()
{
数据={“报告ID”:“1388499”,“用户名”:“FatJellyBean”,“报告文件”:“报告1386875”,“原因”:“扔游戏”,“上诉”:“提交”:“2018年6月10日下午12:41”,“numReports”:2,“玩家”:[{“用户名”:“TooEzJukedBaited”,“ign”:“ImJester”,“角色”:“连环杀手”,“插槽”:1},{“用户名”:“RISTR1K”,“ign”:“Coffee”,“角色”:“医生”,“插槽”:2},{“用户名”:“balintka0607”,“ign”:“威廉·菲普斯”,“角色”:“报应者”,“插槽”:3},{“用户名”:“约翰戈蒂”,“ign”:“卡尔·马克思”,“角色”:“退伍军人”,“插槽”:4},{“用户名”:“Konrad4123”,“ign”:“佩佩”,“角色”:“护卫者”,“插槽”:5},{“用户名”:“赛利安”,“ign”:“杰夫”,“角色”:“小丑”,“插槽”:6},{“用户名”:“福克斯范9”,“ign”:“达宾吉斯诺酷”,“角色”:“刽子手”,“插槽”:7},{”用户名“:”FatJellyBean“,”ign“:”ifyoudonthitsubm“,”角色“:”中号“,”插槽“:”8},{”用户名“,”GalaxyUnivern“,”ign“,”Eliza Macbeth“,”角色“,”教父“,”插槽“,”9},{”用户名“,”Davve27“,”ign“,”卡塔纳“,”角色“,”调查员“,”插槽“,”10},{”用户名“,”GayBobFaggyPants“,”ign“,”莎拉主教“,”角色“,”教父“,”插槽“,”11},{”用户名“,”Holysilymilman“,”角色“:”警长“,”狭缝“:”12},{”用户名“:”平文根“,”ign“:”加芬克尔“,”角色“:”了望“,”狭缝“:”13},{”用户名“:”费克特“,”ign“,”角色“:”制宪者“,”狭缝“:”14},{”用户名“:”弗罗格“,”ign“:”詹姆斯·拉塞尔“,”角色“:”狱卒“,”狭缝“:”15}”;
试验。普及过滤器(数据);
$
$('.reportedPlayer').html($('.#FatJellyBean').next().html());
$(“#荧光笔”).show();
});
功能突出显示(元素、开始、结束)
{
var el=elem[0];
var eln=(el.childrence.length>0)?el.lastChild:el.childNodes[0];
var range=document.createRange();
var sel=window.getSelection();
开始=(开始的类型!=“未定义”)?开始:0;
end=(typeof end!=“未定义”)?end:el.innerHTML.length;
如果(el.children.length>0)开始=结束=0;
范围设置启动(eln,启动);
范围设置结束(eln,结束);
选择removeAllRanges();
选择添加范围(范围);
el.focus();
}
...

可以将一个对象转移到另一个页面,但不能通过您尝试的方法

有一些黑客可以使用url参数:


但是,更推荐的做法是构建端点和API来传递信息。这种体系结构需要更多的工作,但可以解决您的确切问题:

遗憾的是,阻止从其他域(包括子域)返回数据。但是,您可以尝试使用。

在第2页的何处可以看到此数据对象?您的best赌注是使用json端点,而不是点击整个页面,但如果它包含在某个元素中,则有一些提取数据的技巧……你没有错,但相同来源的策略在这里不适用,因为@Lord Nazo从同一个域获取数据。(例如blankmediagames.com)啊,你是对的,出于某种原因,我把URL读作子域
<!DOCTYPE html>
...
    <script>
            $(document).ready(function()
            {
                data = {"ReportID":"1388499","Username":"FatJellyBean","ReportFile":"Report1386875","Reason":"Gamethrowing","Appeal":"","Submitted":"Jun. 10, 2018 12:41 pm","numReports":2,"players":[{"username":"TooEzJukedBaited","ign":"ImJester","role":"SerialKiller","slot":1},{"username":"RISTR1K","ign":"Covfefe","role":"Doctor","slot":2},{"username":"balintka0607","ign":"William Phips","role":"Retributionist","slot":3},{"username":"JohnGotti","ign":"Karl Marx","role":"Veteran","slot":4},{"username":"Konrad4123","ign":"Pepe","role":"Escort","slot":5},{"username":"Celerian","ign":"Jeff","role":"Jester","slot":6},{"username":"foxesfan9","ign":"dabbingisnotcool","role":"Executioner","slot":7},{"username":"FatJellyBean","ign":"ifyoudonthitsubm","role":"Medium","slot":8},{"username":"GalaxyUnivern","ign":"Eliza Macbeth","role":"Godfather","slot":9},{"username":"Davve27","ign":"Katana","role":"Investigator","slot":10},{"username":"GayBobFaggyPants","ign":"Sarah Bishop","role":"Godfather","slot":11},{"username":"holysilman","ign":"Lil Tay","role":"Sheriff","slot":12},{"username":"pingvingen","ign":"Garfunkle","role":"Lookout","slot":13},{"username":"fefecute","ign":"Fefecute","role":"Framer","slot":14},{"username":"Frogers98","ign":"James Russel","role":"Jailor","slot":15}]};
                Trial.populateFilter(data);
                $
                                $('.reportedPlayer').html($('#FatJellyBean').next().html());
                $('#highlighter').show();
            });
            function highlight(elem,start,end)
            {
                var el=elem[0];
                var eln= (el.children.length > 0) ? el.lastChild : el.childNodes[0];
                var range=document.createRange();
                var sel=window.getSelection();
                start = (typeof start != 'undefined') ? start : 0;
                end = (typeof end != 'undefined') ? end : el.innerHTML.length;
                if(el.children.length > 0) start = end = 0;
                range.setStart(eln,start);
                range.setEnd(eln,end);
                sel.removeAllRanges();
                sel.addRange(range);
                el.focus();
            }
        </script>
...
</html>