Имея в виду, что «он прекрасно работает на странице SharePoint в IE, если у меня был открыт локальный HTML-файл в том же браузере».Обратно отследил след и ошибку и обнаружил, что Ajax Call работает, если оба method:POST
и type:POST
находятся во втором Ajax Call с первым Ajax Call только с method: POST
без type: POST
Я неконечно, почему и как это работает, но это так.
Я полагаю, IE каким-то образом принимает данные кэша, и cache:false
вместе с Pragma: no-cache
и Expires: 0
, кажется, никогда не работают.
Здесьэто полное решение:
var successSettings = {
"async": true,
"crossDomain": true,
"url": url1,
"method": "POST",
"type": "POST",
"dataType":"json",
"Pragma": "no-cache",
"Expires": "0",
"headers": {
"Content-Type": "application/json; charset=utf-8",
"Authorization": tkn
"api_key":key1
},
"success": function(text1){
response = text.objlink;
},
"error": function(jqXHR, exception){
var errorHandle = jqXHR + exception;
},
"cache": false,
"processData": false,
"data": dataSend()
};
var failSettings = {
"async": true,
"crossDomain": true,
"url": url1,
"method": "POST",
"dataType":"json",
"Pragma": "no-cache",
"Expires": "0",
"headers": {
"Content-Type": "application/json; charset=utf-8",
"Authorization": tkn
"api_key":key1
},
"success": function(text1){
response = text.objlink;
},
"error": function(jqXHR, exception){
$.ajax(SuccessSettings).done(function () {
var resObj = response;
....
});
},
"cache": false,
"processData": false,
"data": dataSend()
};
jQuery.support.cors = true;
$.ajaxSetup({cache: false});
$.ajax(failSettings).done(function () {
var resObj = response;
....
});