Javascript jsonp请求中未定义的responseText

Javascript jsonp请求中未定义的responseText,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在使用$.ajax向https上的服务器准备的api发送jsonp请求 我的脚本如下: var sUrl = "https://localhost/api/" + document.getElementById('query').value + "?apikey=c13eb63d-b9ee-4ceb-89fe-944072deddbb&fmt=json&limit=&query=" + document.getElementById('query

我正在使用$.ajax向https上的服务器准备的api发送jsonp请求

我的脚本如下:

var sUrl = "https://localhost/api/" + document.getElementById('query').value +
           "?apikey=c13eb63d-b9ee-4ceb-89fe-944072deddbb&fmt=json&limit=&query=" + document.getElementById('query').value;

    $.ajax({
        type: 'GET',
        url: sUrl,
        dataType: 'jsonp',
        jsonp: false,
        async:false,
        crossDomain : true,
        complete: function(jqXHR, textStatus){
                alert(jqXHR);
            alert(jqXHR.responseText);
            }
            });
我的请求将被发送,我可以在我的浏览器中接收结果,这是我的响应正文:

{“relatedid_restriction”:null,“purpose”:“缓解”,“asn”:null,“rir”:null,“alternativeid”:null,“cc”:null,“detecttime”:“2014-04-08T17:34:31Z”,“address”:“google.com”,“alternativeid_restriction”:null,“id”:“2bdd4e07-26ba-4dc2-99a8-bdea54bf3d4f”,“guid”:“所有人”,“严重性”:null,“评估”:“search”,“rdata”:null,“search google.com”,“asn_desc”:null,“relatedid”:null,“reporttime”:“2014-04-08T17:34:31Z”,“信心”:“50”,“限制”:“私有”,“前缀”:null}{“relatedid_限制”:null,“目的”:“缓解”,“asn”:null,“rir”:null,“替代id”:null,“cc”:null,“检测时间”:“2014-04-08T17:35:14Z”,“地址”:“google.com”,“替代id_限制”:null,“id”:”1df23bea-ab15-4410-aab4-d2c538a385fd,“guid”:“所有人”、“严重性”:null,“评估”:“搜索”、“rdata”:null,“描述”:“搜索google.com”,“asn_desc”:null,“相关ID”:null,“报告时间”:“2014-04-08T17:35:14Z”,“信心”:“50”,“限制”:“私有”,“前缀”:null}

现在是第一个警报“警报(jqXHR);“返回[object object],但返回第二个”警报(jqXHR.responseText);“返回未定义的

如何在javascript中检索响应正文文本


谢谢

如果您使用jsonp,您需要进行函数调用。如下所示:

echo $_GET['callback'] . "(" . json_encode($DATA) . ");";
因为jsonp需要调用函数。我认为jQuery将添加一个GET变量,名称为
callback

您可以这样做:

jsonp: "callback",
success : function(data){
    console.log(data);
}

更多信息和示例:

来自jquery文档:

text和xml类型返回数据而不进行任何处理。数据仅通过jqXHR对象的responseText或responseXML属性传递给成功处理程序


也就是说,responseText仅在
datatype=“text”时有效“
,因此,如果不需要jsonp,请更改数据类型,或者在完整回调中使用第一个参数,该参数应该是表示json响应的对象,该响应不是jsonp。”。请研究什么是JSONP。它与普通的ajax请求非常不同,见鬼,它根本不是ajax请求。