gpt4 book ai didi

javascript - 即使使用 $_SERVER 全局,PHP header 也总是给出错误“未定义索引”

转载 作者:行者123 更新时间:2023-12-01 04:45:29 26 4
gpt4 key购买 nike

我正在跨域执行ajax请求。我一直在尝试使用在数组中返回 header 的函数,结果发现我得到了未定义索引,即使我可以在 ajax 请求中返回它们的值并将它们打印到屏幕上。

我在 SO 上发现了一些帖子,说我应该使用 $_SERVER 全局变量。所以我改用该方法只是为了得到相同的结果。

这是我的 jQuery:

setTimeout(function() {
jQuery.ajax({
url: 'http://something.com',
type:"POST",
dataType:"json",
crossDomain:true,
contentType:"application/json",
data: jsonData,
processData:false,
cache:false,
beforeSend: function( xhr ) {
xhr.setRequestHeader("Authorization",api_key[index]);
xhr.setRequestHeader("Action","PUSH");
},
success: function(data) {
alert(data.action);
alert(data.platform + ' : ' + data.message + ' : ' + data.app_name );

if(data.message == 'success')
{
jQuery('#hollmanPNs_send_push div#hollmanPNs_progressbar' + index).progressbar("value",100);

//add message to the paragraph for app name
jQuery('#hollmanPNs_send_push p#hollmanPNs_paragraph' + index).append(': Complete');
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert( 'We had an error: ' + textStatus + errorThrown );
}
}).fail(function() {
alert( 'We had a failed AJAX call.');
});//end ajax

}, index * 5000);//end timeout function

这是我在 PHP 中使用的内容:

if($_SERVER['HTTP_ACTION'] != '')
{
//Do Something
}

我尝试切换到:

xhr.setRequestHeader("X-Action","PUSH");

$_SERVER['HTTP_X_ACTION']

结果相同。只是我无法将它们返回到我的 ajax 请求。

我使用的是 PHP 5.3.3。

我也在使用这个函数,我根据当时尝试的不同 header 进行更改:

header('Access-Control-Allow-Headers: Action, Authorization, Content-Type');

最佳答案

您需要以不同的方式获取标题,如下所示:

$headers = getallheaders();

if(array_key_exists('Action', $headers) && $headers['Action'] != '')
{
//Do Something
}

关于javascript - 即使使用 $_SERVER 全局,PHP header 也总是给出错误“未定义索引”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30535402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com