我需要在'编辑'之前设置自定义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?还是有另一种方法可以做到这一点?
提前致谢!
答案 0 :(得分:1)
您没有写下您使用的editing mode哪个对您的问题得到准确答案非常重要。通常,jqGrid提供选项ajaxRowOptions
,ajaxEditOptions
,ajaxCellOptions
等,允许您自定义jQuery.ajax调用,从而在内部生成jqGrid。可以使用jQuery.ajax的beforeSend
回调来进行您需要的自定义。顺便说一句,jqGrid在内部使用回调来加载网格,如果存在则调用loadBeforeSend
回调。 jqGrid进行的其他Ajax调用不会使用beforeSend
回调,因此您没有loadBeforeSend
之类的回调。
因此,您应该只指定beforeSend
回调,它在loadBeforeSend
回调中执行相同的操作,但您需要将beforeSend
放在ajaxRowOptions
内,{ {1}},ajaxEditOptions
等取决于您使用的编辑模式。您可以在the answer,this one,this one和some another answers中找到此类实施的示例。