У меня есть обработчик ashx, который возвращает текст для ключа, вызываемый из apps.sunamo.cz в sunamo.cz.
Когда я использую https://sunamo.cz/EnString.ashx?k=Default,, все в порядке. Но когда запрашивается * обработчик https://sunamo.cz/EnString.ashx?k=Description, даже не вызывается (нет точки останова повышения в Application_BeginRequest)«Ошибка» в описании слова. Я сравнил полный объект параметров для всех запросов, и он идентичен, только в URI различаются.
Я пишу код на TypeScript, который передается в JavaScript и выводится через Интернет.
Я пробовал больше кода для запроса:
1-й (который всегда работал до сих пор):
export function ajaxGet5(hostname: string, path: string) {
var uri = "https://" + hostname + "/" + path;
var successMessage = "";
$.ajax({
type: 'GET',
url: uri,
crossDomain: true,
contentType: 'text/plain',
async: false,
success: function (data, textStatus, jqXHR) {
successMessage = jqXHR.responseText;
},
complete: function (jqXHR, textStatus) {
successMessage = jqXHR.responseText;
},
error: function (jqXHR, textStatus, errorThrown) {
successMessage = "chyba:" + errorThrown;
}
});
return successMessage;
}
2-й:
export function ajaxGet6(hostname: string, path: string) {
var uri = "https://" + hostname + "/" + path;
var successMessage = "";
var xhr = createCORSRequest('GET', uri, function () {
var responseText = this.responseText;
successMessage = responseText;
});
if (!xhr) {
throw new Error('CORS not supported');
}
xhr.onload = function () {
//successMessage = 'onload';
};
xhr.onerror = function (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) {
successMessage ='onerror';
};
xhr.onloadend = function (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) {
//successMessage = '';
};
xhr.onloadstart = function (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) {
successMessage = 'onloadstart';
};
xhr.ontimeout = function (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) {
successMessage = 'ontimeout';
};
xhr.onabort = function (this: XMLHttpRequest, ev: ProgressEvent<EventTarget>) {
successMessage = 'onabort';
};
xhr.send();
}
function createCORSRequest(method, url, onreadystatechange ) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = onreadystatechange;
if ("withCredentials" in xhr) {
// Check if the XMLHttpRequest object has a "withCredentials" property.
// "withCredentials" only exists on XMLHTTPRequest2 objects.
xhr.open(method, url, false);
} else if (typeof XDomainRequest != "undefined") {
// Otherwise, check if XDomainRequest.
// XDomainRequest only exists in IE, and is IE's way of making CORS requests.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// Otherwise, CORS is not supported by the browser.
xhr = null;
}
return xhr;
}
КогдаЯ создал HTML, который только запрос от apps.sunamo.cz, все работает как шарм!
<script type="text/javascript">
function ajaxGet5(hostname, path) {
var uri = "https://" + hostname + "/" + path;
var successMessage = "";
$.ajax({
type: 'GET',
url: uri,
crossDomain: true,
contentType: 'text/plain',
async: false,
success: function (data, textStatus, jqXHR) {
successMessage = jqXHR.responseText;
},
complete: function (jqXHR, textStatus) {
successMessage = jqXHR.responseText;
},
error: function (jqXHR, textStatus, errorThrown) {
successMessage = "chyba:" + errorThrown;
}
});
return successMessage;
}
var c = ajaxGet5("sunamo.cz", "enstring.ashx?k=Description");
console.log(c);
</script>
Поэтому проблема где-то во всем моем коде. Но где? Кто-нибудь испытывал подобную аномалию?
Спасибо за идеи!