2014-05-09 19 views
9

tôi phải gửi XML đến máy chủ với tiêu đề Authorization và nó PHẢI được POST.JQuery AJAX Tiêu đề Authorization POST

Bây giờ tôi có hai tùy chọn.

  1. Khi tôi sử dụng dataType = 'jsonp', nó luôn trở thành GET thay vì POST. Ngoài ra dữ liệu của tôi cũng phải là XML.

     var request = {}; 
         request.type = 'POST'; 
         request.contentType = 'application/jsonp; charset=utf-8'; 
         request.dataType = 'jsonp'; 
         request.data = JSON.stringify(this.data); 
         request.url = this.url; 
         request.beforeSend = function (xhr) { 
          xhr.setRequestHeader("Authorization", "Basic "); 
         }; 
    
         request.processData = false; 
         $.ajax(request); 
    
  2. Nhưng không có dataType = 'jsonp' Tôi không có tiêu đề Xác thực. Mã sau chỉ hoạt động đối với Chrome.

    var request = {}; 
        request.type = 'POST'; 
        request.contentType = 'text/xml'; 
        request.dataType = 'xml'; 
        request.data = this.data; 
        request.url = this.url; 
        request.beforeSend = function (xhr) { 
         xhr.setRequestHeader("Authorization", "Basic "); 
        }; 
    
        request.processData = false; 
        $.ajax(request); 
    

Vâng, tôi biết rằng có rất nhiều câu hỏi tương tự như trên StackOverflow và tôi đã đọc hàng chục trong số họ nhưng vẫn không tìm ra câu trả lời đúng.

+0

Vì vậy, những gì bạn đã thử điều đó không làm việc, đăng một số mã! – adeneo

Trả lời

8

Sửa tiêu đề trong phương pháp beforeSend, ví dụ:

$.ajax({ 
    url: url, 
    method: "POST", 
    dataType: "json", 
    crossDomain: true, 
    contentType: "application/json; charset=utf-8", 
    data: JSON.stringify(data), 
    cache: false, 
    beforeSend: function (xhr) { 
     /* Authorization header */ 
     xhr.setRequestHeader("Authorization", "Basic " + Utils.getUsernamePassword()); 
     xhr.setRequestHeader("X-Mobile", "false"); 
    }, 
    success: function (data) { 

    }, 
    error: function (jqXHR, textStatus, errorThrown) { 

    } 
}); 
+1

Có, tôi đã làm điều này nhưng khi tôi đặt dataType = "json" nó trở thành GET. Tôi đang làm gì sai? – user3392045

+0

bạn có thể chia sẻ mã ur không? –

+0

Xem câu hỏi cập nhật – user3392045

Các vấn đề liên quan