本地文件发送jQuery AJAX GET,成功,但数据未定义

时间:2013-12-16 07:12:13

标签: jquery ajax jsonp

我在本地html文件中编写了一个简单的代码来测试jQuery AJAX,如下所示:

$(document).ready(function(){
    $.ajax({
      url: "http://hqdigi2.eastmoney.com/EM_Quote2010NumericApplication/CompatiblePage.aspx?Type=Z2&r=1386912455181&fav=300251",
      dataType: "script",
      dataFilter: function(data, type) {
        console.log("### type: " + type+", data: " + data);
      },
      success: function(data, status, xhr) {
        console.log("****success: " + data + ", status: " + status);
        console.log("xhr.responseText: " + xhr.responseText);
      },
      error: function(jqXhr, status, err) {
        console.log("!!!!Error - xhr:" + jqXhr + ", status: " + status + ", " + err);
      }
    });
});

执行后,控制台显示:

Resource interpreted as Script but transferred with MIME type text/html: "http://hqdigi2.eastmoney.com/EM_Quote2010NumericApplication/CompatiblePage.aspx?Type=Z2&r=1386912455181&fav=300251&_=1387173844186". 
### type: script text, data: undefined 
****success: undefined, status: success 
xhr.responseText: undefined

但是回复真的如下所示:

var stockData={DataList:["2,300251,aStockName,41.64,1.19%,0.49,41.57,0,41.64,0,160955,66550,41.30,41.15,42.15,40.38,1,198,0"],UpDatetime:"2013-12-16 14:48:27"};

如何获得此回复文字?

我还尝试将dataType更改为“text”,但Chrome会抱怨Access-Control-Allow-Origin不允许使用Origin null。我不想禁用Chrome的安全设置以允许本地文件跨域访问。

抱歉格式不好,因为我的网络问题,cdn.sstatic.net错过了一些css / js文件

1 个答案:

答案 0 :(得分:0)

我一次又一次地尝试了,最后我发现我可以从成功回调中得到响应对象stockData!并将dataType设置为“script”(或使用$ .getScript)。 我不明白的另一件事是dataType - only脚本和jsonp可以通过远程域访问错误来阻止响应,文本,json或html。