Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery POST默认POST字段_Php_Jquery_Post - Fatal编程技术网

Php jQuery POST默认POST字段

Php jQuery POST默认POST字段,php,jquery,post,Php,Jquery,Post,我知道我们可以在jQuery中为POST请求添加一些默认选项(设置),但我的问题如下:我可以为POST添加一个带值的默认字段,以便在每次POST请求时发送它吗? 例如:如果我有:?name=John&age=20并且我使用$.post()方法发送它们,我希望PHP以:?name=John&age=20&defaultField1=defaultValue1 注:我知道我可以使用append()或类似的方法将字段添加到表单中,或者直接添加到.serialize()之前的数据数组中,但是如果我能够将

我知道我们可以在jQuery中为POST请求添加一些默认选项(设置),但我的问题如下:我可以为POST添加一个带值的默认字段,以便在每次POST请求时发送它吗?

例如:如果我有:
?name=John&age=20
并且我使用
$.post()
方法发送它们,我希望PHP以:
?name=John&age=20&defaultField1=defaultValue1


注:我知道我可以使用
append()
或类似的方法将字段添加到表单中,或者直接添加到
.serialize()
之前的数据数组中,但是如果我能够将其作为默认选项添加,那会更好。(我需要的字段将是请求令牌,因此如果未设置此键,PHP将不会处理数据)

最干净的选项是将对
$.post的所有调用包装在一个内部函数中,该函数在实际调用
$.post
之前附加此参数

任何时候你想要发送一个post请求,调用你的
自定义的\u post\u函数
,它会自动附加你的默认参数

下面是一些超级(过度)简化的伪代码来演示:

function custom_post_function( parameters ){
  // manipulate your parameters before the actual call to $.post
  parameters += "some_special_suff";
  $.post( parameters );
}

可能正在使用固定的自定义标头(然后读取它以处理请求或不处理请求)和for all request或use函数

$.ajaxSetup({
    headers: { 'x-my-custom-header': 'yourdefaultvalue' }
}); 
或者使用beforeSend(如果需要,您也可以将其用于个人请求):


当php最初构建页面时,将name=value填充到一个隐藏的表单字段中?OP,即使可以将其设置为全局jQuery默认值(可能是),Lix的包装函数解决方案仍然更可取。事实上,在设置任何jQuery.ajax默认值/
$.ajaxSetup
/等之前,我会非常仔细地考虑。否则,有一天,当您遇到需要在没有额外参数的情况下发出POST请求(可能是向外部资源)时,或者您想将jQuery换成另一个XHR库时,您会非常头疼。。。
$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('x-my-custom-header', 'yourdefaultvalue');
    }
});