Wie man 'getJSON' Antwort header
Brauche ich zum zugreifen auf die Größe der response-Nachricht, ich bin immer von einer anderen Maschine (cross-domain request) mit $.getJSON, obwohl ich sehen kann, die Anfrage-und Antwort-in der chrome-Konsole, funktioniert es nicht. Hier ist mein request code:
xhr=$.getJSON('http://192.168.1.102/server/server.php?callback=?',
{data:array}, function(res){
alert(xhr.getAllResponseHeader());
},
type='json');
beim ausführen bekomme ich "Uncaught TypeError: Object # hat keine Methode 'getAllResponseHeader' " Fehler. Wenn ich
alert(xhr.getResponseHeader("Content-Length"));
Bekomme ich "null".
Bitte beachten Sie, dass ich bin mit cross-domain bekommen.
- Die richtige Methode name ist
getAllResponseHeaders
. - Für cross-domain, ist es wahrscheinlich, verwendet JSONP. und Ihr doc sagt
However, since JSONP and cross-domain GET requests do not use XHR, in those cases the jqXHR and textStatus parameters passed to the success callback are undefined.
- 1- @Andrei : danke für "s" Sie haben Recht, wenn ich alert-xhr -.getAllResponseHeaders(); es gibt nichts zurück, auch nicht null.
- Sind Sie immer etwas im res?
- Was ist dann die Lösung? Können wir zählen bts durch eigene in javascript und php?
- Ja, ich bin immer ein sortiertes array von zahlen sortiert mit einer pHp-Datei.
- Soweit ich weiß, cross-domain-requests fertig sind mit
script
tag und es keine request-Header info, ich habe zumindest noch nie davon gehört. Also, ich fürchte, Sie können nicht nur Content-Length-header im Falle der Anforderung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht verwenden, JSONP, es ist nicht wirklich ein cross-domain request (JSONP erklärt), es ist ein hack, der funktioniert nur für GET-Anfragen in der Erwägung, dass AJAX erlaubt eine beliebige http-Methode.
Versuchen Vorbereitung Ihrer server zu ermöglichen cross-domain-requests (mehr details) und dies zu tun:
Damit, das xhr-Objekt gesetzt ist und Sie darauf zugreifen können in die Kopfzeile.
Versuchen Sie dies:
Für
cross domain
verwendenFinden Sie diese jQuery getJSON funktioniert lokal, aber nicht cross-domain
Docs Für
getAllResponseHeaders
,getResponseHeader
undajax
http://api.jquery.com/jQuery.ajax/getAll...
aber der Kommentar sagt, es nicht zu verwenden.Beobachtete ich viele Besuche zu dieser Frage und dachte, dass es gut ist eine Lösung für dieses problem. Leider ist keine der angebotenen Lösungen gearbeitet und ich habe zwei Dinge, um das problem zu lösen.
Ich habe überprüft, dass ich die folgenden codes direkt nach der
<?php
tag in meinem server-Seite:Ich leicht verändert die Art, wie ich den Aufruf wie folgt und es funktioniert immer für mich.