2010-06-18 18 views
43

Ich versuche mit jQuery auf Google Docs zuzugreifen. Hier ist, was ich bisher:Setzen Sie Header mit jQuery.ajax und JSONP?

var token = "my-auth-token"; 
$.ajax({ 
    url: "http://docs.google.com/feeds/documents/private/full?max-results=1&alt=json", 
    dataType: 'jsonp', 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", "GoogleLogin auth=" + token); 
    }, 
    success: function(data, textStatus, XMLHttpRequest) { 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
    } 
}); 

es mir nicht erlauben Header zu setzen, wenn ich die dataType zu jsonp (von Make Cross Domain Ajax Requests with jQuery) eingestellt. Wenn ich jsonp weglassen, kann ich die domänenübergreifende Anfrage nicht machen. Wenn ich jQuery.getJSON verwende, kann ich keine Überschriften übergeben ...

Gibt es eine Möglichkeit, benutzerdefinierte Header zu definieren, wenn Sie eine domainübergreifende AJAX-Anforderung (in jQuery) vornehmen?

Antwort

65

Dies ist nicht möglich.

Eine JSONP-Anfrage funktioniert, indem ein <script>-Element mit dem Attribut src erstellt wird, das auf die Anforderungs-URL festgelegt ist.
Sie können der HTTP-Anforderung, die von einem <script>-Element gesendet wird, keine benutzerdefinierten Header hinzufügen.

+1

danke, großartig zu wissen. Follow-up-Frage: http://stackoverflow.com/questions/3073336/how-to-make-cross-domain-requests-in-jquery-and-set-custom-headers. –