Je tente d'utiliser jQuery Form Plugin pour gérer les téléchargements de fichiers dans un formulaire ajax.
Tout fonctionne tant que je n'ai pas de input[type=file] dans le formulaire.
Lorsque j'ajoute un type de fichier input au formulaire, il télécharge le fichier et fonctionne comme prévu dans FireFox, mais j'obtiens cette erreur dans Chrome:
Tentative JavaScript non autorisée d'accéder au cadre avec l'URL http://swbdev.net:8888/inc/ajax/edit_page/ depuis le cadre avec l'URL http://swbdev.net:8888/site-pages-edit/19d8bb79c95e164f736f324d1b09a33e/1/#add_elements. Les domaines, protocoles et ports doivent correspondre.
Il est clairement indiqué que les domaines, protocoles et ports doivent correspondre. Est-ce que j'ai raté quelque chose, dans cette même erreur, il montre les deux URL et le domaine, le protocole et le port correspondent tous?
Voici le JavaScript appelant le plugin:
$(document).ready(function() {
var options = {
success: function(data) {
alert(data);
},
dataType: 'html',
url: '/inc/ajax/edit_page/'
};
$('#add_elements_form').ajaxForm(options);
});
PLUS D'INFORMATIONS:
Cela échoue maintenant également dans FireFox, je ne sais pas pourquoi cela fonctionnait plus tôt, mais voici l'erreur dans FireFox:
Permission refusée pour http://swbdev.net:8888 pour obtenir la propriété Location.href
Il pointe sur cette partie de code dans le plugin:
function cb() {
if (xhr.aborted) {
return;
}
var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
if (!doc || doc.location.href == s.iframeSrc) {
// réponse pas encore reçue
if (!timedOut) return;
}
io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
var ok = true;
Plus précisément, cette ligne:
if (!doc || doc.location.href == s.iframeSrc