7
votes

Obtenir la liste des thèmes d'UI JQuery - d'une URL (même politique d'origine)

Est-ce que quelqu'un connaît un moyen d'obtenir une liste des thèmes jQuery de http : //jquery-ui.googlecode.com/svn/tags/1.8.23/themes/ ?

Je crée une page Web simple avec un rouleau à thèmes où l'utilisateur peut changer de thèmes de manière dynamique. P> Fiddle de travail fort> - Cliquez sur Thèmes sur le dessus droit coin et sélectionnez un nouveau thème. p>

À l'heure actuelle, la liste est codée dure comme ci-dessous, P>

$.ajax({
    url: 'http://jquery-ui.googlecode.com/svn/tags/1.8.23/themes/',
    dataType: 'text',
    beforeSend: function ( xhr ) {
        xhr.setRequestHeader("Access-Control-Allow-Origin", 'http://jquery-ui.googlecode.com');
        xhr.setRequestHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
    },
    crossDomain: true,
    success: function (data) {
        alert(data);
    }, 
    error: function (jqXHR, textStatus, errorThrown) {
        alert(errorThrown + ' ' + textStatus + ' ' + jqXHR.responseText);
    }
});


6 commentaires

Je n'ai pu trouver seulement un moyen de navigateur croiseur pour faire Ajax IE8 + et d'autres navigateurs, rien pour IE6-7: / Stackoverflow.com/questions/3362474/... Mais c'était pour Json Hmm


@MCPDesigns Je vais essayer .. Je n'ai jamais rien fait de ressources croisées et toujours dans la zone de sécurité intranet .. Maintenant, cela pensait à ma propre page Web et aimait l'idée d'utiliser des thèmes de jQuery .. Aways MDN et essayé des choses, mais cela n'a pas fonctionné pour moi .. Je pense que je manque beaucoup ici .. Alors pensé à le poster ici afin que quelqu'un puisse réellement me signaler dans la bonne direction.


La solution de contournement très courante consiste à créer votre propre page qui le télécharge puis JavaScript peut fonctionner avec elle. Vous pouvez créer une page qui ne fait rien de plus que d'appelle la demande HTTP sur jquery-ui.googlecode.com/svn/tags/1.8.23/thèmes (par exemple pour PHP voir PHP.net/Manual/fr/function.Curl-exec.php ), puis vous pouvez le traiter ou simplement le voir. Je sais que ce n'est pas exactement ce que vous recherchez, mais cela fonctionne toujours :-)


@Vega Jetez un oeil ici aussi Enable-cors.org


@Kuncajs Lorsque vous dites "Créer une page", avez-vous voulu dire quelque chose comme iframe ? Je pense que cela vaut la peine d'essayer .. mais je pense qu'il y aura une approche appropriée droite appropriée.


@Vega voir mon commentaire sous la réponse qui fait exactement ce que je voulais dire


4 Réponses :


7
votes

Il semble que le serveur ne permet pas une demande de domaine croisé. Rien que vous ne puissiez faire.

Vous pouvez configurer un script PHP capable de boucler cette page, puis vous ne pouvez qu'Ajax le script php. Comme ce que Kuncajs a dit p>

Vous pouvez utiliser ce bref script PHP Curl sur votre serveur: P>

$.ajax({
    url: "linktoscript.php",
    dataType: "html",
    success: function(data) {
        console.log(data);
    },
    error: function (request, status, error) {
        console.log(request);
        console.log(status);
        console.log(error);
    }
});


4 commentaires

C'est exactement ce que je pensais. Votre serveur qui rend la page peut être quelque chose comme un navigateur Web - à l'aide de CURL, il effectue une requête HTTP et obtient une chaîne représentant le contenu de la page. Je veux dire tout le code HTML de la page Thème SVN. Pensez-y comme un proxy - le serveur le télécharge pour vous et le stocke, puis vous pouvez faire une demande AJAX sur votre propre serveur "proxy" qui figure sur votre propre domaine, donc aucun problème de politique de domaine croisé -> Problème résolu;)


Je ne sais pas php pour que cela va prendre quelque temps pour que je puisse comprendre ce code.


@Vega Même je dois rechercher des références lorsque je commence à travailler avec Curl. Si vous souhaitez trouver un code commenté, recherchez simplement «PHP Simple Curl».


@Vega Ce n'est pas si difficile, vous pouvez écrire un proxy dans n'importe quel langage côté serveur que vous avez à l'aise. Vous pouvez même le généralaliser afin que vous puissiez passer dans l'URL pour aller chercher en tant que paramètre de requête comme proxy.php? Url = http: //www.google.com



0
votes

Avez-vous essayé d'utiliser Communicateur de thème Plugin utilisé par JQuery:
Il donnera à tous les thèmes prêts faits utilisés par JQuery à des fins de démo. XXX


0 commentaires

2
votes

0 commentaires

0
votes

Vous pouvez avoir votre site ajouter un lien vers le style comme celui-ci:

Lorsque vous cliquez sur le nouveau thème, JavaScript ajoute une étiquette de lien à la tête Vous pouvez remplacer la partie UI-Lightness de la liaison avec n'importe lequel des noms ici: http://jquery-ui.googlecode.com/svn/tags/1.8.23/themes/ J'espère que cela aide


0 commentaires