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