PUT,DELETE从Jquery到PHP的数据

ola*_*nod 8 php rest jquery

我试图使用JUTery.ajax()与PUT和DELETE方法,并与请求一起发送一些数据,但在打印请求时在PHP端,它是空的.

$.ajax({
url: 'ajax.php',
type: 'DELETE',
data: {some:'some',data:'data'},
}
Run Code Online (Sandbox Code Playgroud)

在PHP中:

print_r($_REQUEST);
Run Code Online (Sandbox Code Playgroud)

我得到一个空数组.我不知道它是一个jquery或php的东西,或者只是我无法以这种方式发送数据.我知道DELETE方法是在没有发送附加数据的情况下使用的,但是这里每个ajax请求都被发送到同一个脚本.

rdl*_*rey 18

要在PHP中,你不能使用超全局像PUT请求检索HTTP请求正文的内容,$_POST或者$_GET还是$_REQUEST因为...

PUT或DELETE请求数据不存在PHP超全局

相反,您需要手动检索请求正文STDIN或使用该php://input流.

$_put = file_get_contents('php://input');

如果$_GET发生PUT或DELETE请求,仍将填充超全局.如果需要访问这些值,可以按正常方式进行.我不熟悉jquery如何使用DELETE请求发送变量,所以如果$_GET没有填充,你可以尝试手动解析$_SERVER['QUERY_STRING']变量或使用@ShankarSangoli建议的自定义"action"参数来容纳过时的浏览器首先使用javascript发送DELETE请求.