2015-03-10 2 views
0

Когда я добавить заголовок HTTP_X_REQUESTED_WITH в AJAX для запроса на другой сервер, то это даст Erorr, как Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://www.xxxxxxxxxxxx.com/checkurl.php?action=xxxxxxx. This can be fixed by moving the resource to the same domain or enabling CORS.добавить заголовок в AJAX для Cross-Origin, не работает

и если удалить этот заголовок он работает должным образом.

У меня есть много запроса AJAX, поэтому я использую этот формат, чтобы добавить заголовок во всех Ajax запроса

$(document).ajaxSend(function (event, jqxhr, settings) { 
    jqxhr.setRequestHeader('HTTP_X_REQUESTED_WITH', 'XMLHttpRequest') 
}); 

и мой Аякса является:

$.ajax({ 
    url:sitePath+'Xxxxxxxxx/checkurl.php?action=Pages&page='+actionPage, 
    type :'POST', 
    crossDomain:true, 
    success : function(data){ 
     hideLoadingDiv(); 
     if(data.getElementsByTagName("message")[0].getElementsByTagName("messageType")[0].childNodes[0].nodeValue=="SUCCESS") 
     { 
      document.getElementById(divID).innerHTML=data.getElementsByTagName("PageBody")[0].childNodes[0].nodeValue+'<span><a onclick="return checkRegistrationValidation();" href="javascript:void(0);" class="orengeBtn">Back</a></span>'; 
      displayDiv(divID); 
     } 
     else if(data.getElementsByTagName("message")[0].getElementsByTagName("messageType")[0].childNodes[0].nodeValue=="ERROR") 
     { 
      showErrorMessage(data.getElementsByTagName("message")[0].getElementsByTagName("messageText")[0].childNodes[0].nodeValue); 
     } 
     else 
     { 
      generalError(); 
     } 
    }, 
    error:function(xhr,ajaxOptions, thrownError){ 
     hideLoadingDiv(); 
     if(xhr.status==200){ 
      generalError(); 
     } 
     else{ 
      networkError(); 
     } 
     if(debugMode==1){ 
      displayAjaxError(xhr,thrownError); 
     } 
    } 
}); 

и в моем файле сервера я использую

header("Access-Control-Allow-Origin: *"); 
header('Access-Control-Allow-Methods: GET, POST'); 
header('Access-Control-Allow-Headers: X-Requested-With, Content-Type') 

, но он дает ошибку каждый раз, когда я добавляю заголовок. И после того, как он правильно работает. Пожалуйста помоги.

+0

Что вы хотите? Если это работает, зачем вам заголовок? – VMAtm

+0

Я хочу добавить заголовок в каждом запросе. – Jitendra

+0

Я хочу добавить заголовок в каждый запрос ajax. – Jitendra

ответ

0

Вы можете найти ответ здесь:

Cross-Domain AJAX doesn't send X-Requested-With header

Вы должны либо добавить заголовки вручную в вашем AJAX:

$.ajax({ 
    url:sitePath+'Xxxxxxxxx/checkurl.php?action=Pages&page='+actionPage, 
    type :'POST', 
    crossDomain:true, 
    headers: {'X-Requested-With': 'XMLHttpRequest'} 

или сделать запрос не crossdomain:

$.ajax({ 
    url:sitePath+'Xxxxxxxxx/checkurl.php?action=Pages&page='+actionPage, 
    type :'POST', 
    crossDomain:false, 
+0

также не работает, если я добавляю заголовок вручную – Jitendra

Смежные вопросы