2013-04-30 106 views
1

我遇到了一塊ajax代碼。這是錯誤消息我從MOD安全得到:在ajax中設置請求標頭

/ajaxController.php?mod=catalog & OP = ajaxSeenProducts HTTP/1.1

訪問用代碼400(階段2)拒絕。運營商EQ在 REQUEST_HEADERS上匹配0。 [file「/usr/local/apache/conf/modsec2.user.conf」] [line「12」] [id「960012」] [msg「POST請求必須有 內容長度標題」] [severity]警告「] [標籤 ‘PROTOCOL_VIOLATION /規避問題’]

有一個在網上商店我的工作,這表明最後查看的產品模塊,以及jQuery代碼我是這樣的:

$('#seen_products_box').ready(function() { 
    $.ajax({ 
     type: "POST", 
     url: "{HOME}ajaxController.php?mod=catalog&op=ajaxSeenProducts", 
     success: function(seenProducts) { 
      $('#seen_products_box').empty(); 
      $('#seen_products_box').append(seenProducts); 
     } 
    }); 
}); 

在尋找解決方案時,我發現在各個地方我需要設置

內容長度

參數,但所有我發現是這種格式:

xmlHttp.setRequestHeader("Content-length", params.length); 

是否有任何的方式來設置在我在上面提供的代碼格式的請求頭?我已經嘗試過這樣的:

頭:{ 「內容長度」:params.length }

,但沒有結果。任何幫助,將不勝感激。

回答

0

使用如下代碼:

   var url = '{HOME}ajaxController.php?'; 
       var data = "mod=catalog&op=ajaxSeenProducts"; 
       $.ajax({ 
        url: url, 
        data: data, 
        dataType: "html", 
        type:'post', 
        success:function(seenProducts){ 
         $('#seen_products_box').empty(); 
         $('#seen_products_box').append(seenProducts); 
        }, 
        error:function(response){ 

        } 
       }); 
0

可以使用beforeSend功能設置,你可以不喜歡它

$('#seen_products_box').ready(function() { 
$.ajax({ 
    type: "POST", 
headers: {"X-Test-Header": "test-value"}, 
    url: "{HOME}ajaxController.php?mod=catalog&op=ajaxSeenProducts", 
    success: function(seenProducts) { 
     $('#seen_products_box').empty(); 
     $('#seen_products_box').append(seenProducts); 
    } 
}); 
}); 
+1

謝謝你的答案headers

$('#seen_products_box').ready(function() { $.ajax({ type: "POST", beforeSend: function (request) { request.setRequestHeader("Authority", authorizationToken); }, url: "{HOME}ajaxController.php?mod=catalog&op=ajaxSeenProducts", success: function(seenProducts) { $('#seen_products_box').empty(); $('#seen_products_box').append(seenProducts); } }); }); 

或其他方式。正如我上面所說,我已經嘗試使用「標題:{」Content-Length「:」params.length「}」並沒有工作。沒有這些,代碼的作品,但我得到的錯誤。我已經沒有想法... – 2013-04-30 08:04:22

+0

我已經嘗試過發送以及那也沒有工作 - 沒有它的代碼工作,但模式安全顯示錯誤,與代碼不起作用 – 2013-04-30 08:13:12