Где я могу найти достойную документацию по настройке заголовков jQuery ajax? - PullRequest
5 голосов
/ 21 мая 2011

Вместо того чтобы использовать метод beforeSend для установки заголовков запроса, я решил, что хочу изучить возможность установки заголовков при вызове jQuery $ .ajax (). Естественно, я зашел на эту страницу здесь, http://api.jquery.com/jQuery.ajax/,, но документации недостаточно, и я не могу найти способ установить несколько заголовков и формат для этого на этой странице или где-либо еще.

@ Тахир: Тогда почему это не работает?

<!DOCTYPE html>
<html>
  <head>
    <title>Multiple DnD Uploader</title>
    <link rel="stylesheet" href="style.css" />
    <script type = "text/javascript" src = "../music/jquery.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        $('#drop').change(function(event){
          files = event.target.files;
          $('#drop').css('display', 'none');
          for(var i = 0, len = files.length; i < len; i++) {
            alert(files[i].fileName);
            $.ajax({
              type: "POST",
              url: "uploader.php",
              contentType: "multipart/form-data",
              headers: {
                "X-File-Name" : ""+files[i].fileName,
                "X-File-Size" : ""+files[i].fileSize
              },
              data: 'hi',
              success: function(data){
                $('#info').append('Success: ' + data + '<br />');
              },error: function(data){
                $('#info').append('Error: ' + data + '<br />');
              }
            });
          }
        });
      });
    </script>
  </head>
  <body>
    <div id="drop">
      <h1>Drop files here</h1>
      <p>To add them as attachments</p>
      <input type="file" multiple="true" id="filesUpload" />
    </div>
    <div id="info">
    </div>
  </body>
</html>

Два атрибута X-File-Name и X-File-Size не отображаются в заголовках запроса.

РЕШЕНИЕ: Я чувствую себя действительно глупо, получается, что файл jquery.js, на который я указывал, был 1.4.4, поэтому я обновил его, и теперь он работает! Благодаря.

1 Ответ

4 голосов
/ 21 мая 2011

В нем говорится:

Карта дополнительных пар ключ / значение заголовка для отправки вместе с запросом.Этот параметр устанавливается до вызова функции beforeSend;поэтому любые значения в настройке заголовков могут быть перезаписаны из функции beforeSend.

Так что все, что вам нужно сделать, это передать объект вроде:

{"header1":"value1","header2":"value2"}

и т. д.на.Вот некоторый код, который добавляет заголовок Accept в запросе поста:

    $.ajax("relative/url/action.do",{
    success: function(){
        alert("success");
    },
    error: function(jqXHR, textStatus, errorThrown){
        alert(textStatus + ": " + jqXHR.responseText );
    },
    headers: {Accept: "application/json"},
    type : "POST"
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...