Din motive de securitate, nu putem face cereri AJAX pe mai multe domenii cu jQuery. De exemplu, nu pot apela metoda load () și treci în 'cnn.com'. Așa cum am fi încărcat în script-uri și așa, precum și conținutul dorit, acest lucru ar prezenta un risc semnificativ de securitate. Cu toate acestea, pot exista momente când acest lucru este exact ceea ce aveți nevoie. Datorită YQL, putem permite această funcționalitate destul de ușor!
// Acceptă o funcție de url și o funcție de apel invers. funcția requestCrossDomain (site, callback) // Dacă nu a fost transmisă nicio adresă URL, ieșiți. dacă (! site) alert ("Nu a fost trecut site-ul."); return false; // Luați urlul furnizat și adăugați-l la o interogare YQL. Asigurați-vă că ați codificat-o! var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent ('selectează * din html unde url = "' + site + '") +' & format = xml & callback = cbFunc „; // Solicitați șirul YSQL și executați o funcție de apel invers. // Treceți o funcție definită pentru a preveni bustul în cache. $ .getJSON (yql, cbFunc); funcția cbFunc (date) // Dacă avem ceva de lucru cu ... dacă (data.results [0]) // Eliminați toate etichetele de script, din motive de securitate. // FII FOARTE ATENT. Acest lucru ajută, dar ar trebui să facem mai mult. date = date.results [0] .replace (/ , sau . Din acest motiv, adaugam o clasa de caractere ([^>] *), ceea ce inseamna "Gaseste zero sau mai mult din nimic care NU este un grup de inchidere.Acesta va avea grija de atribute si valori.[\ S \ S] *?Apoi, vrem să eliminăm tot codul, precum și orice spațiere. \ s se referă la un spațiu. \ S se referă la orice nu este un spațiu. Încă o dată, adăugăm a * după clasa de caractere pentru a desemna că dorim zero sau mai multe apariții.
<\/script>În sfârșit, găsiți etichetele de script de închidere.
Citirea în continuare
Aceasta este menită doar să ofere o privire asupra modului în care putem obține această funcție. Doar atât de mult pot fi acoperite într-un videoclip de cinci minute. Simțiți-vă liber să discutați în comentarii și sunteți întotdeauna încurajați să vă sugerați codul sursă pentru a vă îmbunătăți!