我使用烬1.5使用grunt-cli
,想发生Ajax调用使用dataType: "JSON"
CORS支持。灰烬支持XDomainRequest(XDR)为CORS
Ember.$.ajax({
type: "GET",
url: App.serverURL + 'logVisit', // callback for jsonP
data : {
'fp': App.fp
},
dataType : "JSON",
success: function(response) {
console.log('DEBUG: visitor has been registered');
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("DEBUG jqXHR.responseText : ",jqXHR.responseText);
var response = jqXHR.responseText;
console.log('Failure!');
if(jqXHR.status&&jqXHR.status==400){
// alert(jqXHR.responseText);
var response = $.parseJSON(jqXHR.responseText);
if (response) {
console.log(response.error);
} else {
// This would mean an invalid response from the server - maybe the site went down or whatever...
console.log("DEBUG: Inside jqXHR.status : Something went wrong");
}
} else {
console.log("DEBUG: Something went wrong");
}
}
});
上IE10/11其运行良好。但在IE8/9,因为它需要XDR对象,它没有工作和显示控制台
LOG: DEBUG jqXHR.responseText : undefined
LOG: Failure!
LOG: DEBUG: Something went wrong
任何帮助或破解?
我的请求头:
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:localhost:8080
Origin:http://localhost:9000
Referer:http://localhost:9000/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36
在非IE浏览器的8/9响应头
Access-Control-Allow-Origin:*
Content-Type:application/json
Date:Wed, 25 Mar 2015 16:01:56 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked
'jqXHR.responseText'的值是什么?也就是说,不是试图用'parseJSON'将它解析为json,而是将它回显给控制台('console.log(jqXHR.responseText);')。 – lsowen 2015-03-25 12:31:16
在IE10/11上获得的响应是'undefined' – 2015-03-25 12:39:08
“它运行良好,但由于XDR,它不能正常工作” - 这没有意义。它不能运行良好,不能同时正常工作。另外IE10/11不需要XDR,这是非常老版本的IE。 – Quentin 2015-03-25 12:58:37