Я использую Angular 4 HttpClient
для отправки запросов на внешний сервис. Это очень стандартная настройка:
this.httpClient.get(url).subscribe(response => {
//do something with response
}, err => {
console.log(err.message);
}, () => {
console.log('completed');
}
Проблема в том, что когда запрос не выполняется, я вижу общий
Http failure response for (unknown url): 0 Unknown Error
сообщение в консоли. Между тем, когда я проверяю неудачный запрос в chrome, я вижу, что состояние ответа-422, а во вкладке «предварительный просмотр» я вижу фактическое сообщение, описывающее причину сбоя.
Как получить доступ к фактическому ответному сообщению, которое я вижу в инструментах chrome dev?
Вот скриншот демонстрация проблемы:
1320
7
7 ответов:
Проблема была связана сCORS . Я заметил, что в консоли Chrome появилась еще одна ошибка:
На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Происхождение ‘http://localhost:4200 ‘ поэтому доступ запрещен. Ответ имел код состояния HTTP 422.’
Это означает, что в ответе от серверной части отсутствовал заголовок
Access-Control-Allow-Origin
, хотя серверная часть nginx была настроена для добавления этих заголовков к ответам с помощьюadd_header
директива .Однако эта директива добавляет заголовки только в том случае, если код ответа равен 20X или 30X. Мне нужно было использовать параметр
always
, чтобы убедиться, что заголовок добавляется независимо от кода ответа:
add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;
Как только серверная часть была правильно настроена, я мог получить доступ к фактическому сообщению об ошибке в коде Angular.
Если вы используете Laravel в качестве бэкенда, то отредактируйте его .htaccess файл, просто вставив этот код, чтобы решить проблему CROS в вашем Angular или IONIC проекте
Header add Access-Control-Allow-Origin "*" Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Для меня это было вызвано JsonSerializerException на стороне сервера.
При выполнении запроса произошло необработанное исключение
Newtonsoft.формат JSON.JsonSerializationException: содержит ссылки на себя петлю
обнаружен с типом …Клиент сказал:
POST http://localhost:61495/api/Action net::ERR_INCOMPLETE_CHUNKED_ENCODING ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
Упрощение типа ответа устранение петель решило проблему.
Эта ошибка возникла у меня в Firefox, но не в Chrome при разработке локально, и она оказалась вызвана тем, что Firefox не доверяет моему локальному API-сертификату ssl (который не является действительным, но я добавил его в свой локальный CERT store, что позволило chrome доверять ему, но не ff). Переход к API напрямую и добавление исключения в Firefox исправили проблему.
Работая на меня после отключения расширения Ads block В chrome, эта ошибка иногда появляется из-за того, что что-то блокирует http в браузере
![]()
Не так стар, как другие вопросы, но я просто боролся с этим в приложении Ionic-Laravel, и здесь ничего не работает (и другие сообщения), поэтому я установил https://github.com/barryvdh/laravel-cors дополнение в Laravel и началось, и оно работает довольно хорошо.
Мое было вызвано недопустимым отношением в моделях, которые я пытался запросить. Выяснено путем отладки ответа он разбился на отношение.
Я использую Angular 4 HttpClient
для отправки запросов во внешнюю службу. Это очень стандартная настройка:
this.httpClient.get(url).subscribe(response => {
//do something with response
}, err => {
console.log(err.message);
}, () => {
console.log('completed');
}
проблема в том, что при сбое запроса я вижу общий
Http failure response for (unknown url): 0 Unknown Error
сообщение в консоли. Между тем, когда я проверяю неудачный запрос в chrome, я вижу, что статус ответа-422, а на вкладке «предварительный просмотр» я вижу фактическое сообщение, описывающее причину сбоя.
как получить доступ к фактическому ответному сообщению, которое я вижу в chrome dev инструменты?
вот скриншот, демонстрирующий проблему:
7 ответов
проблема была связана с CORS. Я заметил, что в консоли Chrome произошла еще одна ошибка:
заголовок «Access-Control-Allow-Origin» отсутствует на запрашиваемом ресурсе. Происхождение’http://localhost:4200 ‘ поэтому доступ запрещен. Ответ имел код состояния HTTP 422.`
Это означает, что ответ от backend сервер не хватает Access-Control-Allow-Origin
заголовок, хотя бэкэнд nginx был настроен для добавления этих заголовки ответов с add_header
директива.
однако эта директива добавляет заголовки только тогда, когда код ответа 20X или 30X. В ответах на ошибки заголовки отсутствовали. Мне нужно было использовать always
параметр, чтобы убедиться, что заголовок добавлен независимо от кода ответа:
add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;
как только бэкэнд был правильно настроен, я мог получить доступ к фактическому сообщению об ошибке в угловом коде.
Если вы используете Laravel в качестве бэкэнда, отредактируйте его .htaccess файл, просто вставив этот код, чтобы решить проблему CROS в вашем угловом или ионном проекте
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
для меня это было вызвано JsonSerializerException на стороне сервера.
необработанное исключение при выполнении запроса
Newtonsoft.формат JSON.JsonSerializationException: содержит ссылки на себя петлю
обнаружен с типом …
клиент сказал:
POST http://localhost:61495/api/Action net::ERR_INCOMPLETE_CHUNKED_ENCODING
ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
упрощение типа ответа, устранение циклов решило проблему.
эта ошибка произошла для меня в Firefox, но не Chrome при разработке локально, и это оказалось вызвано Firefox, не доверяя моему локальному API ssl сертификат (что недопустимо, но я добавил его в свой локальный магазин сертификатов, который позволил chrome доверять ему, но не ff). Переход к API напрямую и добавление исключения в Firefox исправили проблему.
работает для меня после выключения расширения блока объявлений в chrome, эта ошибка иногда появляется, потому что что-то блокирует http в браузере
1
автор: Dwi Yanuar Ilham
не так стар, как другие вопросы, но я просто боролся с этим в приложении Ionic-Laravel, и ничего не работает отсюда (и других сообщений), поэтому я установил https://github.com/barryvdh/laravel-cors дополнение в Laravel и началось, и оно работает довольно хорошо.
0
автор: gersonmontenegro
мой был вызван недопустимым отношением в моделях, которые я пытался запросить. Выяснил, отладив ответ, он разбился на отношение.
Я использую Angular 4 HttpClient
для отправки запросов во внешнюю службу. Это очень стандартная установка:
this.httpClient.get(url).subscribe(response => {
//do something with response
}, err => {
console.log(err.message);
}, () => {
console.log('completed');
}
Проблема в том, что когда запрос не выполняется, я вижу Http failure response for (unknown url): 0 Unknown Error
в консоли общее
сообщение. Между тем, когда я проверяю неудавшийся запрос в chrome, я вижу статус ответа 422, а на вкладке «предварительный просмотр» я вижу фактическую причину сбоя в сообщении.
Как мне получить доступ к фактическому ответному сообщению, которое я вижу в инструментах Chrome dev?
Вот скриншот, демонстрирующий проблему:
Ответы:
Проблема была связана с CORS . Я заметил, что в консоли Chrome произошла еще одна ошибка:
На запрошенном ресурсе отсутствует заголовок Access-Control-Allow-Origin. Происхождение « HTTP: // локальный: 4200 », следовательно , не имеет права доступа. Ответ имел код состояния HTTP 422.
Это означает, что в ответе внутреннего сервера отсутствовал Access-Control-Allow-Origin
заголовок, хотя серверный nginx был настроен на добавление этих заголовков в ответы с помощью add_header
директивы .
Однако эта директива добавляет заголовки только тогда, когда код ответа равен 20X или 30X. В сообщениях об ошибках отсутствовали заголовки. Мне нужно было использовать always
параметр, чтобы убедиться, что заголовок добавлен независимо от кода ответа:
add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;
Как только бэкэнд был правильно настроен, я мог получить доступ к фактическому сообщению об ошибке в коде Angular.
В случае, если кто-то еще окажется таким же потерянным, как и я … Мои проблемы НЕ были связаны с CORS (я полностью контролирую сервер (ы), и CORS был настроен правильно!).
Моя проблема заключалась в том, что я использую платформу Android уровня 28, которая по умолчанию отключает сетевую связь в открытом виде, и я пытался разработать приложение, которое указывает на IP-адрес моего ноутбука (на котором запущен сервер API). Базовый URL-адрес API выглядит примерно так : http: // [LAPTOP_IP]: 8081 . Поскольку это не https , android webview полностью блокирует xfer сети между телефоном / эмулятором и сервером на моем ноутбуке. Чтобы это исправить:
Добавить конфигурацию сетевой безопасности
Новый файл в проекте: resources / android / xml / network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- Set application-wide security config -->
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>
ПРИМЕЧАНИЕ. Это следует использовать осторожно, так как это разрешит весь открытый текст из вашего приложения (ничто не заставляет использовать https). Вы можете ограничить его, если хотите.
Ссылка на конфигурацию в основном config.xml
<platform name="android">
...
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
....
</platform>
Это оно! Оттуда я восстановил APK, и теперь приложение могло связываться как с эмулятором, так и с телефона.
Дополнительная информация о сетевой сек: https://developer.android.com/training/articles/security-config.html#CleartextTrafficPermitted
работает для меня после отключения расширения блокировки рекламы в Chrome, эта ошибка иногда появляется из-за того, что что-то блокирует http в браузере
Если вы используете приложение .NET Core, это решение может помочь!
Более того, это может быть не ошибка Angular или другая ошибка запроса в вашем клиентском приложении.
Во-первых, вам нужно добавить пакет Microsoft CORS Nuget:
Install-Package Microsoft.AspNetCore.Cors
Затем вам нужно добавить службы CORS в файл startup.cs. В вашем методе ConfigureServices должно быть что-то похожее на следующее:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
}
Затем добавьте в свое приложение промежуточное ПО CORS. В вашем startup.cs у вас должен быть метод настройки. Вам нужно, чтобы это было примерно так:
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
app.UseCors( options =>
options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
app.UseMvc();
}
Лямбда параметров — это удобный API, поэтому вы можете добавлять / удалять любые дополнительные параметры, которые вам нужны. Фактически вы можете использовать опцию «AllowAnyOrigin», чтобы принять любой домен, но я настоятельно рекомендую вам не делать этого, поскольку он открывает вызовы из разных источников от кого-либо. Вы также можете ограничить перекрестные вызовы источников их HTTP-методом (GET / PUT / POST и т. Д.), Чтобы вы могли только открывать перекрестные доменные вызовы GET и т. Д.
Эта ошибка возникала у меня в Firefox, но не в Chrome при локальной разработке, и оказалось, что Firefox не доверяет моему локальному сертификату ssl API (который недействителен, но я добавил его в свое локальное хранилище сертификатов, что позволило хром доверять ему но не ff). Непосредственный переход к API и добавление исключения в Firefox устранили проблему.
Для меня это было вызвано исключением JsonSerializerException на стороне сервера.
Произошло необработанное исключение при выполнении запроса Newtonsoft.Json.JsonSerializationException: обнаружен цикл самореференции с типом …
Клиент сказал:
POST http://localhost:61495/api/Action net::ERR_INCOMPLETE_CHUNKED_ENCODING
ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
Упрощение типа ответа за счет устранения петель решило проблему.
Если вы используете Laravel в качестве Backend, отредактируйте файл .htaccess, просто вставив этот код, чтобы решить проблему CROS в вашем проекте Angular или IONIC.
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Аналогичная ошибка может возникнуть, если вы не предоставили действующий сертификат клиента и токен, который понимает ваш сервер:
Ошибка:
Ответ об ошибке HTTP для (неизвестный URL): 0 Неизвестная ошибка
Пример кода:
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
class MyCls1 {
constructor(private http: HttpClient) {
}
public myFunc(): void {
let http: HttpClient;
http.get(
'https://www.example.com/mypage',
{
headers:
new HttpHeaders(
{
'Content-Type': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
'MyClientCert': '', // This is empty
'MyToken': '' // This is empty
}
)
}
).pipe( map(res => res), catchError(err => throwError(err)) );
}
}
Обратите внимание, что оба MyClientCert
& MyToken
являются пустыми строками, отсюда и ошибка.
MyClientCert
& MyToken
может быть любым именем, понятным вашему серверу.
Я использую расширения ASP.NET SPA, которые создают мне прокси на портах 5000 и 5001, которые передаются на порт 4200 Angular во время разработки.
Я правильно настроил CORS для https-порта 5001, и все было в порядке, но я случайно перешел на старую закладку, которая была для порта 5000. Затем внезапно возникло это сообщение. Как другие говорили в консоли, появилось сообщение об ошибке «предполетная».
Итак, независимо от вашей среды, если вы используете CORS, убедитесь, что у вас указаны все порты — поскольку хост и порт имеют значение.
Я получал именно это сообщение всякий раз, когда выполнение моих запросов занимало более 2 минут. Браузер отключился от запроса, но запрос на серверной части продолжался, пока не был завершен. Сервер (в моем случае веб-API ASP.NET) не обнаружил разъединение.
После целого дня поиска я наконец нашел этот ответ , объяснив, что если вы используете конфигурацию прокси , у него по умолчанию тайм-аут 120 секунд (или 2 минуты).
Итак, вы можете отредактировать конфигурацию прокси и установить все, что вам нужно:
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"timeout": 6000000
}
}
Теперь я использовал agentkeepalive, чтобы заставить его работать с аутентификацией NTLM , и не знал, что тайм-аут агента не имеет ничего общего с тайм-аутом прокси, поэтому оба должны быть установлены. Мне потребовалось время, чтобы осознать это, поэтому вот пример:
const Agent = require('agentkeepalive');
module.exports = {
'/api/': {
target: 'http://localhost:3000',
secure: false,
timeout: 6000000, // <-- this is needed as well
agent: new Agent({
maxSockets: 100,
keepAlive: true,
maxFreeSockets: 10,
keepAliveMsecs: 100000,
timeout: 6000000, // <-- this is for the agentkeepalive
freeSocketTimeout: 90000
}),
onProxyRes: proxyRes => {
let key = 'www-authenticate';
proxyRes.headers[key] = proxyRes.headers[key] &&
proxyRes.headers[key].split(',');
}
}
};
Для меня это была проблема браузера, так как мои запросы нормально работали в Postman.
Оказывается, по какой-то причине Firefox и Chrome заблокировали запросы, идущие на порт 6000
, после того как я изменил порт API ASP.NET на 4000
, ошибка изменилась на известную ошибку CORS, которую я мог исправить.
Chrome по крайней мере показал мне, ERR_UNSAFE_PORT
что дало мне понять, что может быть не так.
Если у вас есть правильный заголовок cors. Возможно, в вашей корпоративной сети отсутствует заголовок cors. Если веб-сайт доступен извне, попробуйте получить к нему доступ из-за пределов своей сети, чтобы проверить, не вызывает ли сеть проблема — хорошая идея независимо от причины.
В ядре asp.net, если ваш контроллер api не имеет вызываемой аннотации [AllowAnonymous]
, добавьте ее над именем вашего контроллера, например
[ApiController]
[Route("api/")]
[AllowAnonymous]
public class TestController : ControllerBase
Не такой старый, как другие вопросы, но я просто боролся с этим в приложении Ionic-Laravel, и здесь ничего не работает (и другие сообщения), поэтому я установил дополнение https://github.com/barryvdh/laravel-cors в Laravel и запустился, и он работает очень хорошо.
Моя была вызвана недопустимыми отношениями в моделях, которые я пытался запросить. Выяснилось путем отладки ответа, что он разбился в отношении.
Для меня это не было проблемой. Было поле типа DateTime в БД, которое имеет значение (0000-00-00), и моя модель не может правильно привязать это свойство, поэтому я изменил на допустимое значение, например (2019-08-12).
Я использую ядро .net, OData v4 и MySql (коннектор EF pomelo)
Добавьте эти коды в файл подключения
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT,GET,POST,DELETE");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
Если это служба узла, попробуйте шаги, описанные здесь
По сути, это ошибка общего доступа к ресурсам (CORS). Подробнее о таких ошибках здесь .
Как только я обновил службу узлов, добавив следующие строки, все заработало:
let express = require("express");
let app = express();
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
Моя ошибка заключалась в том, что файл был слишком большим (ядро dotnet, похоже, имеет ограничение @ ~ 25 МБ). настройка
- maxAllowedContentLength до 4294967295 (максимальное значение uint) в web.config
- украшение действия контроллера [DisableRequestSizeLimit]
- services.Configure (options => {options.MultipartBodyLengthLimit = 4294967295;}); в Startup.cs
решил проблему для меня.
Я использую Angular 4 HttpClient
для отправки запросов на внешнюю службу. Это очень стандартная настройка:
this.httpClient.get(url).subscribe(response => {
//do something with response
}, err => {
console.log(err.message);
}, () => {
console.log('completed');
}
Проблема в том, что когда запрос не работает, я вижу общий Http failure response for (unknown url): 0 Unknown Error
сообщение об Http failure response for (unknown url): 0 Unknown Error
в консоли. Между тем, когда я проверяю неудавшийся запрос в chrome, я вижу, что статус ответа — 422, а на вкладке «Предварительный просмотр» я вижу фактическое сообщение о причине возникновения ошибки.
Как получить доступ к фактическому ответному сообщению, которое я вижу в инструментах хром-dev?
Вот скриншот, демонстрирующий проблему:
Ответ 1
Проблема была связана с CORS. Я заметил, что в консоли Chrome появилась еще одна ошибка:
В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Происхождение ‘ http://localhost: 4200 ‘, следовательно, не допускается. В ответе был код статуса 422.
Это означает, что ответ с сервера backend отсутствовал в заголовке Access-Control-Allow-Origin
хотя backend nginx был настроен для добавления этих заголовков в ответы с директивой add_header
.
Однако эта директива добавляет только заголовки, когда код ответа 20X или 30X. При ответах об ошибках заголовки отсутствовали. Мне нужно было always
использовать параметр, чтобы убедиться, что заголовок добавлен независимо от кода ответа:
add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;
Когда бэкэнд был правильно настроен, я смог получить доступ к фактическому сообщению об ошибке в Угловом коде.
Ответ 2
работая для меня после отключения расширения блока объявлений в chrome, эта ошибка появляется иногда из-за того, что блокирует http в браузере
Ответ 3
В случае, если кто-то еще окажется потерянным, как я… Мои проблемы были не из-за CORS (у меня полный контроль над сервером (ами), и CORS был настроен правильно!).
Моя проблема заключалась в том, что я использую платформу Android уровня 28, которая по умолчанию отключает сетевые коммуникации в открытом тексте, и пыталась разработать приложение, которое указывает на IP моего ноутбука (на котором запущен сервер API). Базовый URL-адрес API выглядит примерно так: http://[LAPTOP_IP]: 8081. Поскольку это не https, Android WebView полностью блокирует сетевой переход между телефоном/эмулятором и сервером на моем ноутбуке. Чтобы это исправить:
Добавить конфигурацию безопасности сети
Новый файл в проекте: resources/android/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- Set application-wide security config -->
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>
ПРИМЕЧАНИЕ: Это следует использовать осторожно, так как оно разрешит весь открытый текст из вашего приложения (ничто не заставит использовать https). Вы можете ограничить его, если хотите.
Ссылка на конфигурацию в основном config.xml
<platform name="android">
...
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
....
</platform>
Вот оно! Оттуда я восстановил APK, и теперь приложение могло общаться как с эмулятора, так и с телефона.
Больше информации о сети сек: https://developer.android.com/training/articles/security-config.html#CleartextTrafficPermitted
Ответ 4
Если вы, ребята, используете ядро .net, приведенное ниже, этот шаг может вам помочь!
Более того, это не Angular или другая ошибка запроса в вашем приложении FrontEnd
Сначала ребята должны добавить пакет Microsoft CORS от Nuget. Если ваши ребята не добавлены в ваше приложение, следуйте команде установки.
Install-Package Microsoft.AspNetCore.Cors
Затем вам нужно добавить службы CORS. В файле startup.cs в вашем методе ConfigureServices должно быть что-то похожее на следующее:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
}
Затем вам нужно добавить промежуточное программное обеспечение CORS в ваше приложение. В вашем startup.cs у вас должен быть метод Configure. Вы должны иметь это похоже на это:
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
app.UseCors( options =>
options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
app.UseMvc();
}
Параметры lambda — это свободный API, поэтому вы можете добавлять/удалять любые дополнительные функции, которые вам нужны. На самом деле вы можете использовать опцию «AllowAnyOrigin», чтобы принять любой домен, но я настоятельно рекомендую вам не делать этого, так как он открывает вызовы из любого источника. Вы также можете ограничить вызовы из разных источников для их HTTP-метода (GET/PUT/POST и т.д.), Чтобы вы могли выставлять только вызовы GET между доменами и т.д.
Спасибо, ты сатиш (сел)
Ответ 5
Для меня это было вызвано серверной стороной JsonSerializerException.
Произошло необработанное исключение при выполнении запроса. Newtonsoft.Json.JsonSerializationException: обнаружен самоссылающийся цикл с типом…
Клиент сказал:
POST http://localhost:61495/api/Action net::ERR_INCOMPLETE_CHUNKED_ENCODING
ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
Упрощение типа ответа за счет устранения петель решило проблему.
Ответ 6
Эта ошибка произошла для меня в Firefox, но не в Chrome при разработке локально, и это оказалось вызвано тем, что Firefox не доверял моему локальному сертификату API ssl (что неверно, но я добавил его в свой локальный магазин cert, который позволяет хром доверять ему, но не ff). Исправлена проблема с прямым доступом к API и добавлением исключения в Firefox.
Ответ 7
Если вы используете Laravel в качестве Backend, а затем отредактируйте файл.htaccess, просто вставив этот код, чтобы решить проблему CROS в вашем проекте Angular или IONIC
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Ответ 8
Подобная ошибка может произойти, если вы не предоставили действительный сертификат клиента и токен, который понимает ваш сервер:
Ошибка:
Ответ об ошибке Http для (неизвестный url): 0 Неизвестная ошибка
Пример кода:
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
class MyCls1 {
constructor(private http: HttpClient) {
}
public myFunc(): void {
let http: HttpClient;
http.get(
'https://www.example.com/mypage',
{
headers:
new HttpHeaders(
{
'Content-Type': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
'MyClientCert': '', // This is empty
'MyToken': '' // This is empty
}
)
}
).pipe( map(res => res), catchError(err => throwError(err)) );
}
}
Обратите внимание, что и MyClientCert
& MyToken
— это пустые строки, поэтому ошибка. MyClientCert
& MyToken
может быть любым именем, которое понимает ваш сервер.
Ответ 9
Я использую ASP.NET SPA Extensions, который создает мне прокси на портах 5000 и 5001, которые проходят через Angular port 4200 во время разработки.
У меня была правильная настройка CORS для порта https 5001, и все было хорошо, но я случайно попал в старую закладку, которая была для порта 5000. Затем неожиданно это сообщение возникло. Как говорили другие в консоли, было сообщение об ошибке «предполетное».
Поэтому, независимо от вашей среды, если вы используете CORS, убедитесь, что у вас есть все порты, указанные в качестве хоста и порта.
Ответ 10
Я не так стара, как другие вопросы, но я просто боролся с этим в приложении Ionic-Laravel, и отсюда ничего не работает (и других сообщений), поэтому я установил https://github.com/barryvdh/laravel-cors дополнение в Laravel и начал, и он работает очень хорошо.
Ответ 11
Мой был вызван недействительными отношениями в моделях, которые я пытался запросить. Выяснилось, отлаживая ответ, который он разбил на отношение.
Ответ 12
Если у вас есть правильный заголовок cors. Ваша корпоративная сеть может быть отключена от заголовка cors. Если веб-сайт доступен извне, попробуйте получить доступ к нему из-за пределов сети, чтобы убедиться, что сеть вызывает эту проблему — хорошая идея, независимо от причины.
Ответ 13
Я получал это точное сообщение всякий раз, когда мои запросы занимали более 2 минут. Браузер отключится от запроса, но запрос на бэкэнде продолжался до его завершения. Сервер (в моем случае ASP.NET Web API) не обнаружил разрыв соединения.
После целого дня поиска я наконец-то нашел этот ответ, объяснив, что если вы используете конфигурацию прокси-сервера, по умолчанию время ожидания составляет 120 секунд (или 2 минуты).
Таким образом, вы можете отредактировать конфигурацию прокси и установить для нее все, что вам нужно:
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"timeout": 6000000
}
}
Теперь я использовал agentkeepalive, чтобы заставить его работать с проверкой подлинности NTLM, и не знал, что тайм-аут агента не имеет никакого отношения к тайм-ауту прокси, поэтому оба должны быть установлены. Мне потребовалось некоторое время, чтобы понять это, поэтому вот пример:
const Agent = require('agentkeepalive');
module.exports = {
'/api/': {
target: 'http://localhost:3000',
secure: false,
timeout: 6000000, // <-- this is needed as well
agent: new Agent({
maxSockets: 100,
keepAlive: true,
maxFreeSockets: 10,
keepAliveMsecs: 100000,
timeout: 6000000, // <-- this is for the agentkeepalive
freeSocketTimeout: 90000
}),
onProxyRes: proxyRes => {
let key = 'www-authenticate';
proxyRes.headers[key] = proxyRes.headers[key] &&
proxyRes.headers[key].split(',');
}
}
};
Ответ 14
Если вы используете Laravel в качестве Backend, а затем отредактируйте файл Controller в проекте laravel, просто вставив этот код в функцию конструктора, чтобы решить проблему CROS в вашем проекте Angular или IONIC
public function __construct(){
header('Access-Control-Allow-Origin: *'); //just add this line
}
Ответ 15
Моя ошибка состояла в том, что файл был слишком большим (ядро dotnet, кажется, имеет ограничение @~ 25Mb). настройка
- maxAllowedContentLength до 4294967295 (максимальное значение uint) в web.config
- украшать действие контроллера с помощью [DisableRequestSizeLimit]
- services.Configure(options => {options.MultipartBodyLengthLimit = 4294967295;}); в Startup.cs
решил проблему для меня.
Ответ 16
Ну, я испытал ту же ошибку, после поиска всех комментариев здесь, ничего не помогло. Наконец, выясняется, что мой сервер узлов не работал.
Содержание
- Unknown error: перевод, синонимы, произношение, примеры предложений, антонимы, транскрипция
- Произношение и транскрипция
- Перевод по словам
- Предложения с «unknown error»
- Я получаю «Http failure response for (unknown url): 0 Unknown Error» вместо фактического сообщения об ошибке в Angular
- 7 ответов:
- Вы искали: unknown error (Английский — Русский)
- Переводы пользователей
- Английский
- Русский
- Информация
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Получите качественный перевод благодаря усилиям 4,401,923,520 пользователей
- unknown_error
- Тематики
- Вы искали: unknown error, please try again later (Английский — Русский)
- Компьютерный перевод
- English
- Russian
- Информация
- English
- Russian
- Переводы пользователей
- Английский
- Русский
- Информация
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Английский
- Русский
- Получите качественный перевод благодаря усилиям 4,401,923,520 пользователей
Unknown error: перевод, синонимы, произношение, примеры предложений, антонимы, транскрипция
Произношение и транскрипция
Перевод по словам
noun: неизвестное, незнакомец, неизвестная величина
adjective: неизвестный, безвестный
adverb: тайно, без ведома
- unknown disk — неизвестный диск
- unknown loss — неучтенная потеря
- unknown gunmen — неизвестные боевики
- unknown host — неизвестный хост
- recently unknown — в последнее время неизвестно
- various known and unknown risks — Различные известные и неизвестные риски,
- practically unknown — практически неизвестны
- involve known and unknown risks — включают в себя известные и неизвестные риски,
- whose parents are unknown — родители которого неизвестны
- father is unknown — отец неизвестен
noun: погрешность, ошибка, заблуждение, отклонение, рассогласование, грех, блуждание, уклонение
- backward error recovery — ретроспективное устранение ошибок
- common error messages — Общие сообщения об ошибках
- consecutive error — последовательные ошибки
- i not receive a error message — я не получил сообщение об ошибке
- amount of error — количество ошибок
- the error is eliminated — ошибка устраняется
- error returned — ошибка
- 404 error, page not found — 404 ошибки, страница не найдена
- accounting error — ошибка в бухгалтерской записи
- any error or omission — любые ошибки или упущения
Предложения с «unknown error»
Alternatively, if tarpitting is configured, the Exchange server waits a specified number of seconds before it returns the 550 5.1.1 User unknown error .
Если же задержка настроена, сервер Exchange возвращает ошибку 550 5.1.1 User unknown через заданное количество секунд.
Even if the first -1018 error is reported for an empty page in the database, it is unknown which page might be damaged next.
Даже если первая ошибка с кодом — 1018 относилась к пустой странице базы данных, неизвестно , какая страница будет повреждена в следующий раз.
Greylisting temporarily rejects all messages from unknown senders or mail servers – using the standard 4xx error codes.
Серый список временно отклоняет все сообщения от неизвестных отправителей или почтовых серверов — используя стандартные коды ошибок 4xx.
Проверьте свой словарный запас английского языка обожаемый
- beauty
- adorable
- exotic
- graduate
- noticing
Продолжить
- Теория
- Грамматика
- Лексика
- Аудио уроки
- Диалоги
- Разговорники
- Статьи
- Онлайн
- Тесты
- Переводчик
- Орфография
- Радио
- Игры
- Телевидение
- Специалистам
- Английский для медиков
- Английский для моряков
- Английский для математиков
- Английский для официантов
- Английский для полиции
- Английский для IT-специалистов
- О проекте
- Реклама на сайте
- Обратная связь
- — Partners
- OpenTran
- Словари
- Испанский
- Голландский
- Итальянский
- Португальский
- Немецкий
- Французский
- Хинди
- Содержание
- Перевод
- Синонимы
- Антонимы
- Произношение
- Определение
- Примеры
- Транскрипция
Copyright © 2009-2023. All Rights Reserved.
Источник
Я получаю «Http failure response for (unknown url): 0 Unknown Error» вместо фактического сообщения об ошибке в Angular
Я использую Angular 4 HttpClient для отправки запросов на внешний сервис. Это очень стандартная настройка:
Проблема в том, что когда запрос не выполняется, я вижу общий
Http failure response for (unknown url): 0 Unknown Error сообщение в консоли. Между тем, когда я проверяю неудачный запрос в chrome, я вижу, что состояние ответа-422, а во вкладке «предварительный просмотр» я вижу фактическое сообщение, описывающее причину сбоя.
Как получить доступ к фактическому ответному сообщению, которое я вижу в инструментах chrome dev?
Вот скриншот демонстрация проблемы:
7 ответов:
Проблема была связана сCORS . Я заметил, что в консоли Chrome появилась еще одна ошибка:
На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Происхождение ‘http://localhost:4200 ‘ поэтому доступ запрещен. Ответ имел код состояния HTTP 422.’
Это означает, что в ответе от серверной части отсутствовал заголовок Access-Control-Allow-Origin , хотя серверная часть nginx была настроена для добавления этих заголовков к ответам с помощью add_header директива .
Однако эта директива добавляет заголовки только в том случае, если код ответа равен 20X или 30X. Мне нужно было использовать параметр always , чтобы убедиться, что заголовок добавляется независимо от кода ответа:
add_header ‘Access-Control-Allow-Origin’ ‘http://localhost:4200’ always;
Как только серверная часть была правильно настроена, я мог получить доступ к фактическому сообщению об ошибке в коде Angular.
Если вы используете Laravel в качестве бэкенда, то отредактируйте его .htaccess файл, просто вставив этот код, чтобы решить проблему CROS в вашем Angular или IONIC проекте
Для меня это было вызвано JsonSerializerException на стороне сервера.
При выполнении запроса произошло необработанное исключение Newtonsoft.формат JSON.JsonSerializationException: содержит ссылки на себя петлю обнаружен с типом .
Упрощение типа ответа устранение петель решило проблему.
Эта ошибка возникла у меня в Firefox, но не в Chrome при разработке локально, и она оказалась вызвана тем, что Firefox не доверяет моему локальному API-сертификату ssl (который не является действительным, но я добавил его в свой локальный CERT store, что позволило chrome доверять ему, но не ff). Переход к API напрямую и добавление исключения в Firefox исправили проблему.
Работая на меня после отключения расширения Ads block В chrome, эта ошибка иногда появляется из-за того, что что-то блокирует http в браузере
Не так стар, как другие вопросы, но я просто боролся с этим в приложении Ionic-Laravel, и здесь ничего не работает (и другие сообщения), поэтому я установил https://github.com/barryvdh/laravel-cors дополнение в Laravel и началось, и оно работает довольно хорошо.
Мое было вызвано недопустимым отношением в моделях, которые я пытался запросить. Выяснено путем отладки ответа он разбился на отношение.
Источник
Вы искали: unknown error (Английский — Русский)
Переводы пользователей
Добавлены профессиональными переводчиками и компаниями и на основе веб-страниц и открытых баз переводов.
Английский
Русский
Информация
Английский
Русский
Последнее обновление: 2020-11-10
Частота использования: 7
Качество:
Английский
Русский
Последнее обновление: 2011-10-23
Частота использования: 3
Качество:
Английский
unknown error message
Русский
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Английский
unknown error occurred.
Русский
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Предупреждение: Содержит скрытое HTML-форматирование
Английский
klibloader: unknown error
Русский
Неизвестная ошибка klibloader
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Английский
unknown error. code %1
Русский
Неизвестная ошибка. Код% 1
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Английский
unknown error (%d): %s
Русский
Неизвестная ошибка (%d): %s
Последнее обновление: 2014-08-15
Частота использования: 1
Качество:
Английский
an unknown error happened
Русский
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Английский
an unknown error occurred.
Русский
Произошла неизвестная ошибка. plugin type
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Английский
Русский
Последнее обновление: 2021-07-27
Частота использования: 12
Качество:
Источник: Maritsanyame@gmail.com
Английский
an unknown error has occurred
Русский
um erro desconhecido ocorreu
Последнее обновление: 2014-11-04
Частота использования: 1
Качество:
Источник: Анонимно
Английский
Русский
Последнее обновление: 2016-12-04
Частота использования: 1
Качество:
Источник: Анонимно
Предупреждение: Содержит скрытое HTML-форматирование
Английский
unknown error condition in stat: %1
Русский
Неизвестное состояние ошибки:% 1
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
unknown error while executing gpgconf
Русский
Неизвестная ошибка при выполнении gpgconfas in «verbosity level»
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Предупреждение: Содержит скрытое HTML-форматирование
Получите качественный перевод благодаря усилиям
4,401,923,520 пользователей
Сейчас пользователи ищут:
MyMemory — крупнейшая в мире память переводов. Она была создана на основе систем памяти переводов Европейского Союза, Организации Объединенных Наций и ведущих специализированных многоязычных сайтов из разных отраслей.
Мы относимся к Translated, так что, если вам нужны услуги профессионального перевода, посетите наш основной сайт.
Источник
unknown_error
1 unknown error
неизвестная ошибка
—
[Л.Г.Суменко. Англо-русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.]
Тематики
2 unknown error
3 unknown error
4 unknown error
5 correction
to make corrections — исправлять, корректировать; вносить исправления
6 quantity
гарантированное количество quantity большое количество;
a quantity of множество;
in quantities в большом количестве
мат. величина;
incommensurable quantities несоизмеримые величины insufficient
большое количество like quantities однородные величины limiting
монотонно убывающая величина monotonically increasing
монотонно возрастающая величина observed
физическая величина quantity большое количество;
a quantity of множество;
in quantities в большом количестве
мат. величина;
incommensurable quantities несоизмеримые величины
фон. долгота звука, количество звука
количество (тж. филос.) ;
negligible quantity незначительное количество, величина, которой можно пренебречь;
перен. человек, с которым не считаются;
человек, не имеющий веса
размер quantity большое количество;
a quantity of множество;
in quantities в большом количестве
of goods количество товара
неизвестное;
перен. человек, о котором ничего не известно или действия которого нельзя предусмотреть
Источник
Вы искали: unknown error, please try again later (Английский — Русский)
Компьютерный перевод
Обучается переводу с помощью примеров, переведенных людьми.
English
Russian
Информация
English
unknown error, please try again later
Russian
Переводы пользователей
Добавлены профессиональными переводчиками и компаниями и на основе веб-страниц и открытых баз переводов.
Английский
Русский
Информация
Английский
please try again later
Русский
Пожалуйста, повторите попытку позже
Последнее обновление: 2018-02-21
Частота использования: 2
Качество:
Английский
please try again later.
Русский
please try again later.
Последнее обновление: 2018-02-21
Частота использования: 1
Качество:
Английский
an error has occurred, please try again later
Русский
произошла ошибка, пожалуйста попробуйте позже
Последнее обновление: 2020-03-08
Частота использования: 1
Качество:
Источник: Анонимно
Английский
please try again later. )
Русский
Последнее обновление: 2018-02-21
Частота использования: 2
Качество:
Источник: Анонимно
Английский
failed please try again later
Русский
Неудача, повторите попытку позже
Последнее обновление: 2022-11-10
Частота использования: 1
Качество:
Источник: Анонимно
Английский
some error occurred please try again
Русский
произошла ошибка, попробуйте еще раз
Последнее обновление: 2021-01-08
Частота использования: 1
Качество:
Источник: Анонимно
Английский
please try again
Русский
please try again
Последнее обновление: 2018-02-21
Частота использования: 3
Качество:
Источник: Анонимно
Английский
please try again.
Русский
Последнее обновление: 2018-02-21
Частота использования: 1
Качество:
Источник: Анонимно
Английский
please try again!
Русский
Последнее обновление: 2018-02-21
Частота использования: 1
Качество:
Источник: Анонимно
Английский
error. please try again in a few minutes.
Русский
К сожалению произошла ошибка, попробуйте через несколько минут.
Последнее обновление: 2018-02-21
Частота использования: 1
Качество:
Источник: Анонимно
Английский
the download has failed, please try again later.
Русский
Не удалось загрузить. Пожалуйста, повторите попытку позже.
Последнее обновление: 2016-03-15
Частота использования: 2
Качество:
Источник: Анонимно
Английский
the installation was unsuccessful. please try again later.
Русский
Не удалось установить. Пожалуйста, повторите попытку позже.
Последнее обновление: 2016-03-15
Частота использования: 2
Качество:
Источник: Анонимно
Английский
let’s try again later
Русский
Давай попробуем потом
Последнее обновление: 2020-11-06
Частота использования: 1
Качество:
Источник: Анонимно
Английский
Русский
Последнее обновление: 2020-11-10
Частота использования: 7
Качество:
Источник: Анонимно
Английский
Русский
Последнее обновление: 2011-10-23
Частота использования: 3
Качество:
Источник: Анонимно
Английский
download failed, please try again
Русский
Последнее обновление: 2022-07-16
Частота использования: 1
Качество:
Источник: Анонимно
Английский
incorrect password, please try again.
Русский
Неверный пароль, повторите попытку.
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Английский
incorrect words, please try again!
Русский
Неверный текст. Повторите попытку!
Последнее обновление: 2018-02-21
Частота использования: 1
Качество:
Источник: Анонимно
Английский
maybe we’ll try again later
Русский
Мы, может быть, потом ещё раз попробуем
Последнее обновление: 2020-11-06
Частота использования: 1
Качество:
Источник: Анонимно
Английский
decoding failed. please try again:
Русский
Ошибка расшифровки. Попробуйте снова:
Последнее обновление: 2011-10-23
Частота использования: 1
Качество:
Источник: Анонимно
Получите качественный перевод благодаря усилиям
4,401,923,520 пользователей
Сейчас пользователи ищут:
MyMemory — крупнейшая в мире память переводов. Она была создана на основе систем памяти переводов Европейского Союза, Организации Объединенных Наций и ведущих специализированных многоязычных сайтов из разных отраслей.
Мы относимся к Translated, так что, если вам нужны услуги профессионального перевода, посетите наш основной сайт.
Источник
The problem was related to CORS. I noticed that there was another error in Chrome console:
No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:4200’ is therefore not allowed access. The response had HTTP status code 422.`
This means the response from backend server was missing Access-Control-Allow-Origin
header even though backend nginx was configured to add those headers to the responses with add_header
directive.
However, this directive only adds headers when response code is 20X or 30X. On error responses the headers were missing. I needed to use always
parameter to make sure header is added regardless of the response code:
add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;
Once the backend was correctly configured I could access actual error message in Angular code.
answered Nov 14, 2017 at 21:06
grdlgrdl
3,5333 gold badges24 silver badges24 bronze badges
9
In case anyone else ends up as lost as I was… My issues were NOT due to CORS (I have full control of the server(s) and CORS was configured correctly!).
My issue was because I am using Android platform level 28 which disables cleartext network communications by default and I was trying to develop the app which points at my laptop’s IP (which is running the API server). The API base URL is something like http://[LAPTOP_IP]:8081. Since it’s not https, android webview completely blocks the network xfer between the phone/emulator and the server on my laptop. In order to fix this:
Add a network security config
New file in project: resources/android/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- Set application-wide security config -->
<base-config cleartextTrafficPermitted="true"/>
</network-security-config>
NOTE: This should be used carefully as it will allow all cleartext from your app (nothing forced to use https). You can restrict it further if you wish.
Reference the config in main config.xml
<platform name="android">
...
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
<application android:networkSecurityConfig="@xml/network_security_config" />
</edit-config>
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
....
</platform>
That’s it! From there I rebuilt the APK and the app was now able to communicate from both the emulator and phone.
More info on network sec: https://developer.android.com/training/articles/security-config.html#CleartextTrafficPermitted
answered May 17, 2019 at 0:43
haggyhaggy
7226 silver badges11 bronze badges
5
working for me after turn off ads block extension in chrome, this error sometime appear because something that block http in browser
answered Aug 29, 2018 at 15:38
DwiyiDwiyi
6097 silver badges16 bronze badges
1
If you are using .NET Core application, this solution might help!
Moreover this might not be an Angular or other request error in your front end application
First, you have to add the Microsoft CORS Nuget package:
Install-Package Microsoft.AspNetCore.Cors
You then need to add the CORS services in your startup.cs. In your ConfigureServices method you should have something similar to the following:
public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
}
Next, add the CORS middleware to your app. In your startup.cs you should have a Configure method. You need to have it similar to this:
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
app.UseCors( options =>
options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
app.UseMvc();
}
The options lambda is a fluent API so you can add/remove any extra options you need. You can actually use the option “AllowAnyOrigin” to accept any domain, but I highly recommend you do not do this as it opens up cross origin calls from anyone. You can also limit cross origin calls to their HTTP Method (GET/PUT/POST etc), so you can only expose GET calls cross domain etc.
Feasoron
3,4221 gold badge23 silver badges34 bronze badges
answered Mar 22, 2019 at 6:40
sathishsathish
2612 silver badges13 bronze badges
0
For me it was caused by a server side JsonSerializerException.
An unhandled exception has occurred while executing the request
Newtonsoft.Json.JsonSerializationException: Self referencing loop
detected with type …
The client said:
POST http://localhost:61495/api/Action net::ERR_INCOMPLETE_CHUNKED_ENCODING
ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
Making the response type simpler by eliminating the loops solved the problem.
answered Feb 21, 2018 at 9:56
PerrierPerrier
2,7015 gold badges33 silver badges52 bronze badges
This error was occurring for me in Firefox but not Chrome while developing locally, and it turned out to be caused by Firefox not trusting my local API’s ssl certificate (which is not valid, but I had added it to my local cert store, which let chrome trust it but not ff). Navigating to the API directly and adding an exception in Firefox fixed the issue.
answered Apr 26, 2018 at 13:04
fraxfrax
4434 silver badges10 bronze badges
2
If this is a node service, try the steps outlined here
Basically, it’s a Cross-Origin Resource Sharing (CORS) error. More information about such errors here.
Once I updated my node service with the following lines it worked:
let express = require("express");
let app = express();
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
answered Feb 20, 2020 at 14:32
FistOfFuryFistOfFury
6,5277 gold badges48 silver badges57 bronze badges
1
A similar error can occur, when you didn’t give a valid client certificate and token that your server understands:
Error:
Http failure response for (unknown url): 0 Unknown Error
Example code:
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
class MyCls1 {
constructor(private http: HttpClient) {
}
public myFunc(): void {
let http: HttpClient;
http.get(
'https://www.example.com/mypage',
{
headers:
new HttpHeaders(
{
'Content-Type': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
'MyClientCert': '', // This is empty
'MyToken': '' // This is empty
}
)
}
).pipe( map(res => res), catchError(err => throwError(err)) );
}
}
Note that both MyClientCert
& MyToken
are empty strings, hence the error.
MyClientCert
& MyToken
can be any name that your server understands.
answered Dec 5, 2018 at 12:54
4
I was getting that exact message whenever my requests took more than 2 minutes to finish. The browser would disconnect from the request, but the request on the backend continued until it was finished. The server (ASP.NET Web API in my case) wouldn’t detect the disconnect.
After an entire day searching, I finally found this answer, explaining that if you use the proxy config, it has a default timeout of 120 seconds (or 2 minutes).
So, you can edit your proxy configuration and set it to whatever you need:
{
"/api": {
"target": "http://localhost:3000",
"secure": false,
"timeout": 6000000
}
}
Now, I was using agentkeepalive to make it work with NTLM authentication, and didn’t know that the agent’s timeout has nothing to do with the proxy’s timeout, so both have to be set. It took me a while to realize that, so here’s an example:
const Agent = require('agentkeepalive');
module.exports = {
'/api/': {
target: 'http://localhost:3000',
secure: false,
timeout: 6000000, // <-- this is needed as well
agent: new Agent({
maxSockets: 100,
keepAlive: true,
maxFreeSockets: 10,
keepAliveMsecs: 100000,
timeout: 6000000, // <-- this is for the agentkeepalive
freeSocketTimeout: 90000
}),
onProxyRes: proxyRes => {
let key = 'www-authenticate';
proxyRes.headers[key] = proxyRes.headers[key] &&
proxyRes.headers[key].split(',');
}
}
};
answered Sep 9, 2019 at 21:33
Marcos DimitrioMarcos Dimitrio
6,3885 gold badges37 silver badges60 bronze badges
I’m using ASP.NET SPA Extensions which creates me a proxy on ports 5000 and 5001 that pass through to Angular’s port 4200 during development.
I had had CORS correctly setup for https port 5001 and everything was fine, but I inadvertently went to an old bookmark which was for port 5000. Then suddenly this message arose. As others have said in the console there was a ‘preflight’ error message.
So regardless of your environment, if you’re using CORS make sure you have all ports specified — as the host and port both matter.
answered Dec 6, 2018 at 22:05
Simon_WeaverSimon_Weaver
136k79 gold badges631 silver badges676 bronze badges
For me it was a browser issue, since my requests were working fine in Postman.
Turns out that for some reason, Firefox and Chrome blocked requests going to port 6000
, once I changed the ASP.NET API port to 4000
, the error changed to a known CORS error which I could fix.
Chrome at least showed me ERR_UNSAFE_PORT
which gave me a clue about what could be wrong.
answered Mar 1, 2020 at 19:23
Shahin DohanShahin Dohan
5,7813 gold badges38 silver badges57 bronze badges
If you are using Laravel as your Backend, then edit your .htaccess file by just pasting this code, to solve problem CROS in your Angular or IONIC project
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
answered Feb 2, 2018 at 13:31
3
If you have a proper cors header in place. Your corporate network may be stripping off the cors header. If the website is externally accessible, try accessing it from outside your network to verify whether the network is causing the problem—a good idea regardless of the cause.
answered Nov 6, 2018 at 19:50
N-ateN-ate
5,5862 gold badges40 silver badges46 bronze badges
Add This Codes in your connection file
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT,GET,POST,DELETE");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
answered Jan 2, 2020 at 17:49
0
if you are using nodejs as backend, here are steps to follow
-
install cors in your backend app
npm install cors
-
Add this code
const cors = require('cors'); const express = require('express'); const expressApp = express(); expressApp.use(cors({ origin: ['http://localhost:4200'], "methods": "GET,PUT,POST", "preflightContinue": false, "optionsSuccessStatus": 204, credentials: true }));
answered Feb 14, 2021 at 17:59
YouBeeYouBee
1,91114 silver badges16 bronze badges
Is not as old as other questions, but I just struggled with this in an Ionic-Laravel app, and nothing works from here (and other posts), so I installed https://github.com/barryvdh/laravel-cors complement in Laravel and started and it works pretty well.
answered Aug 17, 2018 at 11:06
Mine was caused by an invalid relationship in the models I was trying to query. Figured out by debugging the response it crashed at the relation.
answered Sep 1, 2018 at 14:03
J.Kirk.J.Kirk.
9232 gold badges12 silver badges30 bronze badges
For me it wasn’t an angular problem. Was a field of type DateTime in the DB that has a value of (0000-00-00) and my model cannot bind that property correct so I changed to a valid value like (2019-08-12).
I’m using .net core, OData v4 and MySql (EF pomelo connector)
answered Nov 14, 2019 at 11:16
Luis LopezLuis Lopez
5311 gold badge13 silver badges28 bronze badges
In asp.net core, If your api controller doesn’t have annotation called [AllowAnonymous]
, add it to above your controller name like
[ApiController]
[Route("api/")]
[AllowAnonymous]
public class TestController : ControllerBase
answered Apr 15, 2020 at 11:55
dgncndgncn
495 bronze badges
1
You must use —port when serve server
ng serve —open —port 4200
export class DatabaseService {
baseUrl: String = "http://localhost:8080/";
constructor(private http: HttpClient) { }
saveTutorial(response) {
var fullUrl = this.baseUrl + "api/tutorials";
return this.http.post(fullUrl,response);
}
}
answered Nov 12, 2020 at 4:55
I had the same issue. I used grdl’s answer above and added a cors configuration to my server like the one below and the problem was solved.
{
"cors": [
{
"origin": [“*”],
"method": ["GET"],
"responseHeader": ["Content-Type"],
"maxAgeSeconds": 3600
}
]
}
Look at the specific cors config help for your server to see how to set it up.
answered Apr 28, 2022 at 7:40
KrithikaKrithika
1151 silver badge10 bronze badges
2022-07-13
This is the easiest way but DON’T with PROD.
Inside index.html, add or edit the existing <meta http-equiv="Content-Security-Policy" content="
. For example CORS blocked my access to local IIS Express https://localhost:44387/api/test
, solution is have this
<meta http-equiv="Content-Security-Policy" content="
...
connect-src 'self' https://localhost:44387 https://anysite.com ...">
answered Jul 13, 2022 at 18:25
Jeb50Jeb50
5,8986 gold badges41 silver badges77 bronze badges
Let do some simple ones:
a) Network is disconnected — zero byte response.
b) I get this when I cancel a http call (yes you can do that)
c) During start up when I move pages too quickly it will cancel http calls because angular has not hooked up properly. I locked page to stop this one occurring.
d) We had a proxy in the middle and it terminated the connection after 30 seconds rather sending a HTTP timeout packet. If you look at the .net logs on back end you will see a client disconnected message. (these are not unusual as a user may just close their browser)
All of these have happened to me and I have no idea how to separate out which cause it is for any specific failure.
answered Aug 19, 2022 at 2:13
KenFKenF
5244 silver badges14 bronze badges
answered Dec 7, 2022 at 7:34
SnaketecSnaketec
2331 silver badge12 bronze badges
My error was that the file was too large (dotnet core seems to have a limit @~25Mb). Setting
- maxAllowedContentLength to 4294967295 (max value of uint) in web.config
- decorating the controller action with [DisableRequestSizeLimit]
- services.Configure(options => { options.MultipartBodyLengthLimit = 4294967295; }); in Startup.cs
solved the problem for me.
answered May 23, 2019 at 14:35
SpikolynnSpikolynn
3,9832 gold badges37 silver badges44 bronze badges
Я использую Angular 4 HttpClient
для отправки запросов на внешнюю службу. Это очень стандартная настройка:
this.httpClient.get(url).subscribe(response => {
//do something with response
}, err => {
console.log(err.message);
}, () => {
console.log('completed');
}
Проблема в том, что когда запрос не работает, я вижу общий Http failure response for (unknown url): 0 Unknown Error
сообщение об Http failure response for (unknown url): 0 Unknown Error
в консоли. Между тем, когда я проверяю неудавшийся запрос в chrome, я вижу, что статус ответа — 422, а на вкладке «Предварительный просмотр» я вижу фактическое сообщение о причине возникновения ошибки.
Как получить доступ к фактическому ответному сообщению, которое я вижу в инструментах хром-dev?
Вот скриншот, демонстрирующий проблему:
08 нояб. 2017, в 12:47
Поделиться
Источник
11 ответов
Проблема была связана с CORS. Я заметил, что в консоли Chrome появилась еще одна ошибка:
В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Происхождение ‘ http://localhost: 4200 ‘, следовательно, не допускается. В ответе был код статуса 422.
Это означает, что ответ с сервера backend отсутствовал в заголовке Access-Control-Allow-Origin
хотя backend nginx был настроен для добавления этих заголовков в ответы с директивой add_header
.
Однако эта директива добавляет только заголовки, когда код ответа 20X или 30X. При ответах об ошибках заголовки отсутствовали. Мне нужно было always
использовать параметр, чтобы убедиться, что заголовок добавлен независимо от кода ответа:
add_header 'Access-Control-Allow-Origin' 'http://localhost:4200' always;
Когда бэкэнд был правильно настроен, я смог получить доступ к фактическому сообщению об ошибке в Угловом коде.
grdl
14 нояб. 2017, в 22:52
Поделиться
работая для меня после отключения расширения блока объявлений в chrome, эта ошибка появляется иногда из-за того, что блокирует http в браузере
Dwi Yanuar Ilham
29 авг. 2018, в 15:45
Поделиться
Для меня это было вызвано сбоем на стороне сервера JsonSerializerException.
Необработанное исключение произошло во время выполнения запроса Newtonsoft.Json.JsonSerializationException: цикл саморекламы, обнаруженный с помощью типа…
Клиент сказал:
POST http://localhost:61495/api/Action net::ERR_INCOMPLETE_CHUNKED_ENCODING
ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
Создание типа ответа, упрощающего цикл, решило проблему.
Perrier
21 фев. 2018, в 10:34
Поделиться
Подобная ошибка может произойти, если вы не предоставили действительный сертификат клиента и токен, который понимает ваш сервер:
Ошибка:
Ответ об ошибке Http для (неизвестный url): 0 Неизвестная ошибка
Пример кода:
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
class MyCls1 {
constructor(private http: HttpClient) {
}
public myFunc(): void {
let http: HttpClient;
http.get(
'https://www.example.com/mypage',
{
headers:
new HttpHeaders(
{
'Content-Type': 'application/json',
'X-Requested-With': 'XMLHttpRequest',
'MyClientCert': '', // This is empty
'MyToken': '' // This is empty
}
)
}
).pipe( map(res => res), catchError(err => throwError(err)) );
}
}
Обратите внимание, что и MyClientCert
& MyToken
— это пустые строки, поэтому ошибка. MyClientCert
& MyToken
может быть любым именем, которое понимает ваш сервер.
Manohar Reddy Poreddy
05 дек. 2018, в 14:22
Поделиться
Эта ошибка произошла для меня в Firefox, но не в Chrome при разработке локально, и это оказалось вызвано тем, что Firefox не доверял моему локальному сертификату API ssl (что неверно, но я добавил его в свой локальный магазин cert, который позволяет хром доверять ему, но не ff). Исправлена проблема с прямым доступом к API и добавлением исключения в Firefox.
frax
26 апр. 2018, в 14:54
Поделиться
Если вы используете Laravel в качестве Backend, а затем отредактируйте файл.htaccess, просто вставив этот код, чтобы решить проблему CROS в вашем проекте Angular или IONIC
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
shirjeel khan
02 фев. 2018, в 13:54
Поделиться
Я использую ASP.NET SPA Extensions, который создает мне прокси на портах 5000 и 5001, которые проходят через Angular port 4200 во время разработки.
У меня была правильная настройка CORS для порта https 5001, и все было хорошо, но я случайно попал в старую закладку, которая была для порта 5000. Затем неожиданно это сообщение возникло. Как говорили другие в консоли, было сообщение об ошибке «предполетное».
Поэтому, независимо от вашей среды, если вы используете CORS, убедитесь, что у вас есть все порты, указанные в качестве хоста и порта.
Simon_Weaver
06 дек. 2018, в 22:51
Поделиться
Если вы используете Laravel в качестве Backend, а затем отредактируйте файл Controller в проекте laravel, просто вставив этот код в функцию конструктора, чтобы решить проблему CROS в вашем проекте Angular или IONIC
public function __construct(){
header('Access-Control-Allow-Origin: *'); //just add this line
}
Anjani Barnwal
26 нояб. 2018, в 07:40
Поделиться
Если у вас есть правильный заголовок cors. Ваша корпоративная сеть может быть отключена от заголовка cors. Если веб-сайт доступен извне, попробуйте получить доступ к нему из-за пределов сети, чтобы убедиться, что сеть вызывает эту проблему — хорошая идея, независимо от причины.
N-ate
06 нояб. 2018, в 20:59
Поделиться
Мой был вызван недействительными отношениями в моделях, которые я пытался запросить. Выяснилось, отлаживая ответ, который он разбил на отношение.
J.Kirk.
01 сен. 2018, в 15:38
Поделиться
Я не так стара, как другие вопросы, но я просто боролся с этим в приложении Ionic-Laravel, и отсюда ничего не работает (и других сообщений), поэтому я установил https://github.com/barryvdh/laravel-cors дополнение в Laravel и начал, и он работает очень хорошо.
gersonmontenegro
17 авг. 2018, в 12:56
Поделиться
Ещё вопросы
- 1Android — еще один вопрос кнопки
- 1Изменение значения элемента ввода без изменения идентификатора элемента
- 0Почему для некоторых изображений $ _FILES [‘image_name’] [‘size’] показывает пустые значения или 0 вместо размера файла в PHP?
- 0Как кодировать URL в AngularJs
- 1Тройник и повторное соединение трубопроводов
- 0Push-уведомление в определенное время
- 0Выберите лучшие n записей на основе суммы 2 столбцов для каждого дня
- 0Предупреждение: mysql_result () [function.mysql-result]: невозможно перейти к строке -1
- 1Принудительно запустить статическую часть класса без инстанцирования
- 1Получение файлов из огромных каталогов на NetDrives
- 1реагировать родной — Как использовать состояние в конструкторе
- 0Написать регулярное выражение в preg_replace
- 1Обработка Python любого исключения дает ошибку KeyboardInterrupt
- 0jQuery — ссылается на другой класс того же объекта
- 0ng-click не стреляет в md-bottom-sheet
- 0php Динмический формат XML в массив php
- 0Выбор данных из базы данных за эту неделю, кроме сегодняшнего дня
- 0ng-show не работает angular.js
- 1Spring-JMS: отправка JMSObjectMessage в WebSphere MQ, но получение JMSBytesMessage
- 0Временные массивы устройств CUDA
- 0Почему конструктор не вызывается
- 0Предотвратить 500 внутренних ошибок сервера при обслуживании большого количества фотографий через библиотеку миниатюр PHP
- 0Что такое в jQuery Mobile то, что читает «data-…» и заменяет элементы DOM?
- 1как развернуть встраиваемый Java-костюм в системе OpenWRT
- 0Как мне установить 2 или более переключателей для каждой строки данных в таблице?
- 0Eclipse и Mysql Ошибка подключения
- 1Как использовать правильный десятичный разделитель и разделитель тысяч при экспорте в Excel в C #?
- 0как я могу передать значение функции после события
- 0Почему angular.extend используется в качестве входного параметра для push-функции javascript?
- 0Не удалось разрешить «state1» из состояния «state» при наличии параметров в URL-ссылке
- 0Нужны эти два <div> рядом
- 0Как проверить сессию в iframe
- 0Получить эффект градиентных остановок в ie9
- 0php — объект ловит данные об ошибке при отсутствии атрибутов
- 0Интеграция Jqwidget
- 0Вызов определенной функции из библиотеки Windows
- 1Генерация Java-классов с JAXB2 в другом проекте Maven
- 1Разбиение многострочного блока текста с регулярными выражениями в c # на matchcollection
- 0Очистка хеш-таблицы в C ++
- 1Как получить доступ к PrintSettings из C # с помощью GeckoFX
- 1Проверка на стороне клиента RequiredFieldValidator для дочернего элемента составного элемента управления
- 1Журналы колб не печатаются, когда приложение запускается через gunicorn
- 0Получение изменений базы данных Mysql и загрузка файлов
- 1Используя HTML5 canvas, как создать бесконечный цикл с временным интервалом
- 1Ошибка реализации БПФ (Наюки против Октавы)
- 1C # XML неправильно проверяет схему в XmlReaderSettings
- 1BorderPane скрывает нижнюю область, пока окно не развернуто
- 0чтение uint16_t из потока битов
- 0Zend PDF загружал ttf с поддержкой языков, но по-прежнему не отображал символы, такие как русский или польский
- 0Собираюсь изучать C, должен ли я просто использовать свой компилятор C ++ и IDE?