Access-Control-Allow-Headers不允许使用X-Requested-With

时间:2015-03-30 10:51:26

标签: javascript php jquery ajax cross-browser

我正在开发一个系统。在该系统中,有一个添加项目到购物车功能。在该功能中,我使用的是Jquery $ .ajax。但在线服务器我遇到了这个错误 -

  

" XMLHttpRequest无法加载域   ?名称/ add_to_cart.php ITEM_ID = 3及HOTEL_ID = 2。请求标头字段   Access-Control-Allow-Headers不允许使用X-Requested-With。"

可以帮助我解决这个错误。

我正在使用此jquery代码

$(document).on('click', '.ordering_btn', function(){
    var item_id = $(this).data('value');
    var hotel_id = "<?php echo $hotel_id; ?>";

    $.ajax({
      type: 'GET',

      url: 'add_to_cart.php?item_id='+item_id+'&hotel_id='+hotel_id+'',

      contentType: 'text/plain',

      xhrFields: {
        withCredentials: false
      },

      headers: {
        "Access-Control-Allow-Headers": "X-Requested-With",
        "X-Requested-With": "XMLHttpRequest"        
      },

      success: function(data) {
        $('#cart_msg').css('display', 'none');
        $('#cart_item').html(data);
        console.log(data);
      },

      error: function() {
      }
    });
});

2 个答案:

答案 0 :(得分:13)

可以通过添加

来修复错误
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');

在ajax调用导致的服务器中....

答案 1 :(得分:2)

删除它:

  headers: {
    "Access-Control-Allow-Headers": "X-Requested-With",
    "X-Requested-With": "XMLHttpRequest"        
  },

Access-Control-Allow-Headers响应标头,而不是请求标头。

您提出请求的服务器不允许X-Requested-With