Chrome jQuery, AJAX scheitern, nicht eine cross-domain-Problem

Habe ich einige einfache JS/jQuery-code, um einen AJAX-Aufruf zu greifen einige HTML und schieben Sie es in ein div auf meiner Seite. Dies funktioniert gut in Firefox, aber scheitert in Chrome.

In der Chrome-console kann ich sehen, der AJAX-Anfrage mit einem status-text "(fehlgeschlagen)" und den Typ "pending".

Alle, die die Suche, die ich getan habe wurde durchsucht, ist im Zusammenhang mit cross-domain-Probleme. Das paßt nicht hier, bei mir läuft diese auf einem webserver mit domain-Namen, ohne eine port-Nummer angehängt werden.

Hier ist mein code-Beispiel (Sie können sehen, war ich zunächst versuchen, zu verwenden .load(), gleiche problem):

$('#brochure2012navigation a').click(function(event)
{
    event.preventDefault();

    //$('#brochurePage').load($(this).attr('href'));

    $.ajax({
        url: $(this).attr('href'),
        dataType: 'html',
        success: function(html) {
            $('#brochurePage').html(html);
        },
        error: function (xhr, ajaxOptions, thrownError) {
            console.log(xhr);
            console.log(thrownError);
        },
    });
});

In der Chrome-console die angemeldeten xhr-Objekt sieht wie folgt aus:

Object {readyState: 0, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
abort: function (a){a=a||"abort",p&&p.abort(a),w(0,a);return this}
always: function (){i.done.apply(i,arguments).fail.apply(i,arguments);return this}
complete: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
done: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
error: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
fail: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
getAllResponseHeaders: function (){return s===2?n:null}
getResponseHeader: function (a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c}
isRejected: function (){return!!i}
isResolved: function (){return!!i}
overrideMimeType: function (a){s||(d.mimeType=a);return this}
pipe: function (a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()}
progress: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
promise: function (a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}
readyState: 0
responseText: ""
setRequestHeader: function (a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this}
state: function (){return e}
status: 0
statusCode: function (a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this}
statusText: "error"
success: function (){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this}
then: function (a,b,c){i.done(a).fail(b).progress(c);return this}
__proto__: Object

Entschuldige mich, dass dies hier sieht ein bisschen chaotisch, aber ich denke, das wichtigste ist der status 0.

Überwachung der Protokolle, die Anfrage ist nicht zu schlagen, mein server.

Ich bin echt ratlos hier, ich würde schätzen jede Hilfe!!!

Cheers,
Al

  • Welche version von Chrome benutzen Sie?
  • Tut $(this).attr('href') geben Sie eine gültige url? nicht gehen, die Seite direkt funktioniert? was sind Sie immer in der Registerkarte "Netzwerk" für die ajax-Anfrage? (Strg+shift+j in Chrome)
  • hast du test mit einer statischen url (statt mit $(this).href) ?
  • Vielen Dank für die Eingabe Jungs. In der Antwort auf die Fragen: - Chrome 24.0.1312.52 und eine Windows-version von Chrome (auch die jüngsten) - $(dies).attr('href') funktioniert, und ich haben überprüft, dass die Seite lädt korrekt - ich habe versucht, hart zu Kodieren eine statische URL verwendet werden, keine Freude
  • Gibt es eine .htaccess Regeln (schreibt)? Ich würde gerne sehen, ein Bildschirmfoto von der Registerkarte "Netzwerk" dieser besonderen Anforderung
  • können Sie für ein funktionierendes code-Beispiel? Entweder JS-fiddle oder besser live auf dem server.
  • zumindest zeigen Sie uns den Inhalt von tnk-link mit id "brochure2012navigation".
  • Haben Sie versucht, das hartcodieren eine ganz andere URL wie www.google.com?
  • Beachten Sie, dass eine subdomain ist eine weitere Herkunft.
  • Wenn die Anfrage nicht auf Ihrem server haben, das ist sehr verdächtig. Auch im Falle einer blockiert cross-domain-Anfrage, die Anfrage sollte auf eurem sever. Das bedeutet entweder, dass eine cross-domain-preflight-OPTIONS-Anforderung ist, schlagen Sie Ihre server statt, oder vielleicht haben Sie ein browser-cache problem. (Haben Sie versucht, Ihren cache leeren?)
  • Sind Sie den Zugriff auf die HTML-Seite von einem file:// URL? Wenn dem so ist, finden Sie unter: stackoverflow.com/questions/3595515/...
  • Der Schlüssel zu dieser Frage ist die url der Seite und die href - Attribut eines link geklickt... Bitte, zeigen Sie uns helfen Ihr problem lösen...

InformationsquelleAutor Al Bennett | 2013-01-22
Schreibe einen Kommentar