Externe gegevens ophalen met JS

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • unglaublich
  • Registratie: Augustus 2008
  • Laatst online: 30-03 21:26
Is het mogelijk op de e.o.a. manier externe gegevens op te halen uit een site?

Als ik de functie aanroep moet JS een bepaalde pagina aanroepen en daaruit de innerHTML van een DIV pakken en in een DIV op de site plakken. Dit heb ik geprobeerd, maar werkt niet omdat externe gegevens niet zomaar opgehaald kunnen worden uit veiligheidsoverwegingen. Iemand een ander idee?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<html>
<head>

<script>

function loadXMLDoc(url, div)
{
xmlhttp=null;
if (window.XMLHttpRequest)
  {// code for IE7, Firefox, Opera, etc.
  xmlhttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.open("GET",url,false);
  xmlhttp.send(null);
  document.getElementById(div).innerHTML=xmlhttp.responseText;
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function retrieveContent(){
loadXMLDoc('http://eenSite.nl/','helper');
document.getElementById('content').innerHTML = document.getElementById('eenBronDiv').innerHTML;
}

</script>

</head>

<body>
<div id="helper" style="display:none;">
Helper Content
</div>
<div id="content">
Content
</div>
<a href="#" onclick="retrieveContent();">Retrieve Content</a>
</body>
</html>

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik post 't linkje met regelmaat: Wikipedia: Same origin policy ;)

Gaat niet werken*. Je zult eerder een (PHP/ASP/whatever) "proxy" moeten schrijven en die benaderen (op je eigen domein dus).

* Ranzige hacks daargelaten; en daar zou ik niet op willen bouwen :X

[ Voor 112% gewijzigd door RobIII op 22-06-2009 12:53 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28
proxy of JSONP

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
JSON of iets i.c.m. server side scripting (php get file contents o.i.d.)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dat werkt natuurlijk wel alleen als 'de andere kant' ook mee werkt. Maar true; dat is een goed alternatief.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

JavaScript:
1
2
loadXMLDoc('http://eenSite.nl/','helper');
document.getElementById('content').innerHTML = document.getElementById('eenBronDiv').innerHTML;
Resultaat wordt daarnaast ook nog eens naar de 'helper' container weggeschreven, maar de content wordt gevuld via een 'eenBronDiv' (bestaat niet!) container.

Ik heb een sterk vermoeden dat dit een copy&paste script is..

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • unglaublich
  • Registratie: Augustus 2008
  • Laatst online: 30-03 21:26
Niemand_Anders schreef op maandag 22 juni 2009 @ 14:37:
[...]

Resultaat wordt daarnaast ook nog eens naar de 'helper' container weggeschreven, maar de content wordt gevuld via een 'eenBronDiv' (bestaat niet!) container.

Ik heb een sterk vermoeden dat dit een copy&paste script is..
Dat heb je dan mooi mis, net geschreven op school met notepad.

Het is de bedoeling dat eenBronDiv een Div is uit de opgehaalde website, en deze moet dus nog ingevuld worden. In het scriptje dat ik gebruik heb ik wel de goede dingen ingevoerd maar wegens omstandigheden kan ik deze er op dit forum niet bij zetten.

Bedankt mensen voor de reacties, ik ga me verdiepen in JSON.

Acties:
  • 0 Henk 'm!

  • Blaise
  • Registratie: Juni 2001
  • Niet online
Als die andere site een crossdomain.xml bestand heeft waarin staat dat het mag, dan kan je ook met Flash html ophalen: http://jimbojw.com/wiki/i...equest_Flash/Ajax_Utility

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 18-09 17:57
RobIII schreef op maandag 22 juni 2009 @ 12:42:
Gaat niet werken*. Je zult eerder een (PHP/ASP/whatever) "proxy" moeten schrijven en die benaderen (op je eigen domein dus).
*nods*

Als we toch aan het reposten zijn: hoe je zo'n proxy bijvoorbeeld kan schrijven - ik had hetzelfde probleem een tijdje geleden met een externe AJAX call :)

Overigens kun je in jou situatie waarschijnlijk een stuk beter middels serverside scripting die pagina ophalen - in PHP bijvoorbeeld middels een combinatie van file_get_contents, Tidy en/of xml_parse.

[ Site ] [ twitch ] [ jijbuis ]

Pagina: 1