2015-01-31 3 views
1

Я пытаюсь сделать запрос POST на сервер с другим доменом, для которого требуется базовая аутентификация.делает запрос ajax POST для сервера с другим доменом и базовым auth невозможно?

Я пробовал каждую комбинацию beforeSend и withCredentials, но основные заголовки auth никогда не отправляются в запросе предварительной проверки OPTIONS.

$.ajax({ 
     url: anotherdomain, 
     data: data, 
     cache: false, 
     contentType: false, 
     processData: false, 
     type: 'POST', 
     dataType:'json', 
     xhrFields: { 
     withCredentials: true 
     }, 
     crossDomain: true, 
     beforeSend: function(xhr) { 
     xhr.setRequestHeader('Authorization', 'Basic *'); 
      xhr.withCredentials = true;   
     } 

Единственный способ я могу получить этот запрос, чтобы преуспеть является установка DATATYPE к «JSONP», или установка «тип» запрос к GET.

Это единственное решение этой проблемы, чтобы удалить требование Basic Auth от сервера anotherdomain для запросов OPTIONS?

Спасибо.

ответ

0

Вы должны также позволить заголовки на сервере: Вот PHP пример (это открытое запрос на любое происхождение, я предлагаю вам ограничить его только на сайт генерирующего Аякс):

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); 
header('Access-Control-Max-Age: 1000'); 
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');