jqGrid:在仅编辑之前设置自定义标题

时间:2014-05-06 20:51:39

标签: jqgrid http-headers xmlhttprequest

我需要在'编辑'之前设置自定义http标头。 (仅限PUT)。 我尝试了这里提到的loadBeforeSend - How to set request header to the ajax object for jqGrid

loadBeforeSend: function(jqXHR) {
                alert('loadBeforeSend');
                jqXHR.setRequestHeader('If-Match', '*');
            },

但是在每个请求之前调用此函数。我需要将此标题仅设置在' PUT'请求,但不得在任何其他。我的' GET'请求实际上失败了这个标题。

如何在loadBeforeSend中检查它是PUT还是GET?还是有另一种方法可以做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您没有写下您使用的editing mode哪个对您的问题得到准确答案非常重要。通常,jqGrid提供选项ajaxRowOptionsajaxEditOptionsajaxCellOptions等,允许您自定义jQuery.ajax调用,从而在内部生成jqGrid。可以使用jQuery.ajaxbeforeSend回调来进行您需要的自定义。顺便说一句,jqGrid在内部使用回调来加载网格,如果存在则调用loadBeforeSend回调。 jqGrid进行的其他Ajax调用不会使用beforeSend回调,因此您没有loadBeforeSend之类的回调。

因此,您应该只指定beforeSend回调,它在loadBeforeSend回调中执行相同的操作,但您需要将beforeSend放在ajaxRowOptions内,{ {1}},ajaxEditOptions等取决于您使用的编辑模式。您可以在the answerthis onethis onesome another answers中找到此类实施的示例。