不确定这里到底发生了什么。 我正在使用聚合物core-ajax自定义元素,在IE 10和11中,我对响应的行为非常奇怪。 看起来当我在console.log(typeof(响应))响应时,响应类型返回一个字符串而不是一个对象,所以我不能使用对象表示法来获取属性。
使用responseType显式设置ajax对象:'json'
请注意在// **下面的笔记
这是我的代码:
<core-ajax id="restaurantAjax"
auto
url="{{baseApiUrl + 'restaurants'}}"
on-core-response="{{restaurantsLoaded}}"
handleAs="json">
</core-ajax>
this.async(function() {
this.$.restaurantService.findById(e.detail.id, (function(restaurant) {
this.$.viewrestaurant.wines = restaurant.wines;
//** IE complaining unable to get property wines of undefined or null
this.$.viewrestaurant.restaurant = restaurant;
}).bind(this));
});
findById: function(id, callback) {
this.$.xhr.request({
url: this.baseApiUrl + 'restaurants/' + id,
callback: (function(response) {
console.log(typeof(response))
//* IE returning string instead of object
var restaurant = null;
if (response && response.restaurant) {
restaurant = response.restaurant;
}
callback(restaurant);
}).bind(this),
headers: {
"Content-type": "application/x-www-form-urlencoded"
},
responseType: 'json'
});
}
});
有人可以帮助我,它会在网站上随机发生,而不是在所有Ajax对象上发生,这本身就很奇怪。
谢谢, 大卫