首页 > 解决方案 > 如何从另一个网址获取数据?

问题描述

这是两难的。我正在对网页 #1 ( http://www.blankmediagames.com/Trial/#start ) 上的这些不同报告进行投票,我正在尝试从网页 #2 ( http:// /www.blankmediagames.com/Trial/viewReport.php?id=1388499)。但是,当我使用此代码时,它只返回整个网页。

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

当我在网页#1 上时,我试图从网页#2 中获取名为“数据”的对象并将其存储在另一个变量中。有什么办法可以做到这一点吗?

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

<!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>

标签: javascriptjqueryarraysajax

解决方案


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

有一些技巧可以使用 url 参数:如何将 javascript 变量从一个 html 页面传递到另一个 html 页面

但是,更建议构建端点和 API 来传递信息。这种架构涉及更多工作,但可以解决您的确切问题:如何将 javascript 对象从一个页面传递到另一个页面


推荐阅读