如何获得'getJSON'响应头

Esp*_*nta 8 javascript rest jquery

我需要使用$ .getJSON访问我从其他计算机(跨域请求)获取的响应消息的大小,虽然我可以在chrome控制台中看到请求和响应,但它不起作用.这是我的请求代码:

xhr=$.getJSON('http://192.168.1.102/server/server.php?callback=?',   
{data:array}, function(res){
alert(xhr.getAllResponseHeader());
}, 
type='json'); 
Run Code Online (Sandbox Code Playgroud)

在运行时我得到"未捕获的TypeError:对象#没有方法'getAllResponseHeader'"错误.我用的时候

alert(xhr.getResponseHeader("Content-Length"));
Run Code Online (Sandbox Code Playgroud)

我得到"null".

请考虑我使用的是跨域get.

Esp*_*nta 0

我观察了很多对这个问题的访问,认为提供这个问题的解决方案很好。不幸的是,所提供的解决方案都不起作用,我做了两件事来解决这个问题。

  1. <?php我验证了我的服务器端标签后面有以下代码:

    header("Content-Type: application/*");
    header("Access-Control-Allow-Origin :*");
    header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
    header("Access-Control-Max-Age: 1000");
    header("Access-Control-Allow-Headers: Content-Type");
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我稍微改变了打电话的方式,如下所示,它总是对我有用。

    function name(){
        $.ajax({
            type: 'POST',
            crossDomain: true,
            data: {
                data1: data
            },
            dataType: 'text',
            error: function (res, textStatus, errorThrown) {
                alert('Connection Terminated. Please try again');
            },
            success: function(res, textStatus, jqXHR) {
            //Process the result in res;
            },
        });//ajax
    }//function name
    
    Run Code Online (Sandbox Code Playgroud)