Uit veiligheidsoverwegingen kunnen we geen AJAX-verzoeken voor meerdere domeinen met jQuery maken. Ik kan bijvoorbeeld de methode load () niet aanroepen en doorgeven in 'cnn.com'. Aangezien we in scripts en dergelijke laden, evenals onze gewenste inhoud, zou dit een aanzienlijk beveiligingsrisico vormen. Desalniettemin kan het voorkomen dat dit specifiek is wat u nodig heeft. Dankzij YQL kunnen we deze functionaliteit vrij gemakkelijk toestaan!
// Accepteert een url en een callback-functie om uit te voeren. function requestCrossDomain (site, callback) // Als er geen URL werd doorgegeven, sluit u af. if (! site) alert ('Geen site geslaagd'); return false; // Neem de verstrekte URL en voeg deze toe aan een YQL-query. Zorg ervoor dat je het codeert! var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent ('select * from html where url = "' + site + '"') + '& format = xml & callback = cbFunc '; // Vraag die YSQL-string aan en voer een callback-functie uit. // Geef een gedefinieerde functie door om cachebusting te voorkomen. $ .getJSON (yql, cbFunc); function cbFunc (data) // Als we iets hebben om mee te werken ... if (data.results [0]) // Strip alle scripttags uit, om veiligheidsredenen. // WEES ERG VOORZICHTIG. Dit helpt, maar we moeten meer doen. data = data.results [0] .replace (/ , of . Om deze reden voegen we een tekenklasse toe ([^>] *), wat betekent: "Vind nul of meer van alles dat NIET een sluitingshaak is. Dit zorgt voor de attributen en waarden.[\ S \ S] *?Vervolgens willen we alle code verwijderen, evenals elke spatiëring. \ s verwijst naar een spatie. \ S verwijst naar alles dat NIET een spatie is. Nogmaals voegen we een toe * na de karakterklasse om aan te geven dat we nul of meer voorkomens willen.
<\/script>Zoek tot slot de scripts voor het sluiten van het script.
Verder lezen
Dit is alleen bedoeld om een idee te geven van hoe we deze functionaliteit kunnen bereiken. Alleen zo veel kan worden afgedekt in een video van vijf minuten. Voel je vrij om te discussiëren in de comments en je wordt altijd aangemoedigd om de broncode te gebruiken om deze te verbeteren!