【问题标题】:Local file send jQuery AJAX GET, success, but data undefined本地文件发送 jQuery AJAX GET,成功,但数据未定义
【发布时间】:2013-12-25 22:59:56
【问题描述】:

我在本地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 文件

【问题讨论】:

    标签: jquery ajax jsonp


    【解决方案1】:

    我反复尝试,终于发现可以从成功回调中获取响应对象stockData!并将 dataType 设置为“脚本”(或使用 $.getScript)。 我不明白的另一件事是 dataType - 只有脚本和 jsonp 可以获得响应,文本、json 或 html 将被远程域访问错误阻止。

    【讨论】:

      猜你喜欢
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多