NetworkError: не удалось выполнить «send» для «XMLHttpRequest»: не удалось загрузить «Sub.domain.com» - вызвать веб-API с использованием javascript - PullRequest
0 голосов
/ 28 июня 2018

Я разработал веб-приложение с использованием Web API 2 и MCV 5. Я пытаюсь вызвать веб-API с использованием javascript и получения NetworkError: Не удалось выполнить «send» для «XMLHttpRequest»: Не удалось загрузить «Sub.domain.com» в консоль.

var param = {
    "EmailID": email,
};

var appUrl = '@ConfigHelper.ApiURL';
var url = appUrl + 'user/checkemailid';

//create xml http request for request api url
var xhr = new XMLHttpRequest();
xhr.open('POST', url, true);

$.ajax({
    type: "POST",
    url: url,
    data: JSON.stringify(param),
    contentType: "application/json",
    dataType: "json",

    success: function (json) {
        debugger;
        if (json.IsSuccessful) {
            swal("", "Email id already exist.", "warning");                  
            return false;
        }
        else {
            return true;
        }
    },
    error: function (data) {
        debugger;
        swal('', data.Message, 'error');
    }
});

, а также добавьте перекрестное происхождение для веб-проекта и API. напишите следующий код в web.config

 <system.webServer>

    <!-- Cross origin for Domain-->
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Methods" value="POST,GET,PUT,PATCH,DELETE,OPTIONS" />
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
      </customHeaders>
    </httpProtocol>
 </system.webServer>

и следующий код в файл global.aspx

protected void Application_BeginRequest()
        {
            if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
            {
                Response.Flush();
            }
        }

Дайте мне знать, где я что-то упускаю.

Я пытаюсь реализовать много решений, таких как Не удалось выполнить 'send' для 'XMLHttpRequest' Syncronous , но не получилось

Тот же фрагмент кода работает для этого проекта для другого домена, но не работает от основного домена к вызову API субдомена.

1 Ответ

0 голосов
/ 04 июля 2018

Вы также можете добавить следующее в объект параметра $ .ajax () -

"crossDomain": true,
"headers": {
              "accept": "application/json",
              "Access-Control-Allow-Origin":"*"
          }
...