我有一个React应用,其中包含一个JavaScript方法,该方法将数据发布到服务器方法。这种方法在所有浏览器下都能正常工作……除了IE11(我知道令人震惊)。不幸的是,此项目需要IE11支持。
IIS日志显示400(错误请求)HTTP状态代码。
由于它与IE11不兼容,我选择不使用fetch(),而宁愿避免对单个浏览器的单个方法求助于外部库(例如axios或jQuery)。
我尝试了一些Content-Type
标头值(application / json和x-url-form-encoded),还尝试了其他可能不相关的标头(Pragma,CORS-即使不是跨域,Cache-Control等。)
handleSubmit(event) {
const booking = {
'key1': 'value1',
'key2': 'value2',
'key3': 'value3',
};
const xhr = new XMLHttpRequest();
const url = "api/Booking/AddBooking";
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send(JSON.stringify(booking));
xhr.onreadystatechange = () => {
if (xhr.readyState === 4 && xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
this.setState({
bookingResponse: response,
showModal: true
});
}
}
event.preventDefault();
}
我知道IE11可以使用外部库,因此必须使用香草JavaScript来解决此问题,我只是找不到它。有什么想法吗?
答案 0 :(得分:0)
该问题与某些变量值有关。我当时使用的是ES6字符串插值法(即反向滴答),而IE则不支持。