С описанием в URI обработчик ASP.NET не работает - PullRequest
0 голосов
/ 21 октября 2019

У меня есть обработчик 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>

Поэтому проблема где-то во всем моем коде. Но где? Кто-нибудь испытывал подобную аномалию?

Спасибо за идеи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...