即使使用$ _SERVER全局,PHP标头也始终给出错误的未定义索引 - javascript

我正在执行跨域的Ajax请求。我一直试图使用返回数组中标头的函数,只是发现我得到了未定义索引,即使我可以在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('Access-Control-Allow-Headers: Action, Authorization, Content-Type');

参考方案

您将希望以不同的方式获取标题,如下所示:

$headers = getallheaders();

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

如果我得到url(''),我该如何使用另一个URL - javascript

我是新手,正在写这篇文章,但是如果源上没有图像,那么我只有空白。有人可以告诉我,如果我正在获取背景图像,如何获取/images/no-image.jpg:url();这是我的代码:<div class="uk-clearfix uk-position-relative"> <div class="recipeb…

对ID为'abc%'的dom执行操作 - javascript

我想对ID为'abc%'的DOM进行一些操作<a id='abc1'></a> <a id='abc2'></a> <a id='abc3'></a> <a id='abc4'></a>…

Jsonp没有出现``访问控制允许来源''错误 - javascript

在我的PHP中,我喜欢这样来回显jsonp类型的“ json数据”echo $_GET['callback'] . '('.json_encode($arr).')'; 在我的js(angularjs)中,$http.get('http://example.com/app/?callbac…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

在JavaScript函数中转义引号 - javascript

我正在尝试将变量传递给javascript函数。根据用户的选择,它可以是文本或图像。这里已经讨论了类似的问题,但我无法解决。在php中,我这样编码:if ($choice == 1) { $img = '<img src = "../folder/'.$_SESSION["img"].'�…