PDA

View Full Version : خطای CORE



rezamahdizadeh
شنبه 19 آبان 1397, 08:38 صبح
چگونه خطای زیر را برطرف کنیم؟
Access to XMLHttpRequest at 'http://localhost:2569/api/contact' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
core.js:1449 ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: null, ok: false, …}
defaultErrorLogger @ core.js:1449
ErrorHandler.handleError @ core.js:1510
next @ core.js:5508
schedulerFn @ core.js:4342
SafeSubscriber.__tryOrUnsub @ Subscriber.js:240
SafeSubscriber.next @ Subscriber.js:187
Subscriber._next @ Subscriber.js:128
Subscriber.next @ Subscriber.js:92
Subject.next @ Subject.js:56
EventEmitter.emit @ core.js:4322
(anonymous) @ core.js:4782
ZoneDelegate.invoke @ zone.js:388
Zone.run @ zone.js:138
NgZone.runOutsideAngular @ core.js:4708
onHandleError @ core.js:4782
ZoneDelegate.handleError @ zone.js:392
Zone.runTask @ zone.js:191
ZoneTask.invokeTask @ zone.js:495
invokeTask @ zone.js:1536
globalZoneAwareCallback @ zone.js:1562
error (async)
customScheduleGlobal @ zone.js:1662
ZoneDelegate.scheduleTask @ zone.js:407
Zone.scheduleTask @ zone.js:232
Zone.scheduleEventTask @ zone.js:258
(anonymous) @ zone.js:1841
desc.set @ zone.js:1232
WebSocketTransport @ sockjs.js:2974
SockJS._connect @ sockjs.js:828
SockJS._receiveInfo @ sockjs.js:802
g @ sockjs.js:66
EventEmitter.emit @ sockjs.js:86
(anonymous) @ sockjs.js:567
g @ sockjs.js:66
EventEmitter.emit @ sockjs.js:86
(anonymous) @ sockjs.js:374
g @ sockjs.js:66
EventEmitter.emit @ sockjs.js:86
xhr.onreadystatechange @ sockjs.js:1593
wrapFn @ zone.js:1176
ZoneDelegate.invokeTask @ zone.js:421
Zone.runTask @ zone.js:188
ZoneTask.invokeTask @ zone.js:495
invokeTask @ zone.js:1536
globalZoneAwareCallback @ zone.js:1562
XMLHttpRequest.send (async)
scheduleTask @ zone.js:2975
ZoneDelegate.scheduleTask @ zone.js:407
Zone.scheduleTask @ zone.js:232
Zone.scheduleMacroTask @ zone.js:255
(anonymous) @ zone.js:3008
proto.(anonymous function) @ zone.js:1382
AbstractXHRObject._start @ sockjs.js:1601
(anonymous) @ sockjs.js:1490
ZoneDelegate.invokeTask @ zone.js:421
Zone.runTask @ zone.js:188
ZoneTask.invokeTask @ zone.js:495
ZoneTask.invoke @ zone.js:484
timer @ zone.js:2065
setTimeout (async)
scheduleTask @ zone.js:2087
ZoneDelegate.scheduleTask @ zone.js:407
Zone.scheduleTask @ zone.js:232
Zone.scheduleMacroTask @ zone.js:255
(anonymous) @ zone.js:2103
proto.(anonymous function) @ zone.js:1382
AbstractXHRObject @ sockjs.js:1489
XHRLocalObject @ sockjs.js:2910
InfoAjax @ sockjs.js:356
InfoReceiver._getReceiver @ sockjs.js:536
InfoReceiver.doXhr @ sockjs.js:556
(anonymous) @ sockjs.js:525
ZoneDelegate.invokeTask @ zone.js:421
Zone.runTask @ zone.js:188
ZoneTask.invokeTask @ zone.js:495
ZoneTask.invoke @ zone.js:484
timer @ zone.js:2065
setTimeout (async)
scheduleTask @ zone.js:2087
ZoneDelegate.scheduleTask @ zone.js:407
Zone.scheduleTask @ zone.js:232
Zone.scheduleMacroTask @ zone.js:255
(anonymous) @ zone.js:2103
proto.(anonymous function) @ zone.js:1382
InfoReceiver @ sockjs.js:524
SockJS @ sockjs.js:730
socket @ socket.js:9
(anonymous) @ client:200
(anonymous) @ client:242
../../../../webpack-dev-server/client/index.js?http://0.0.0.0:0 @ vendor.bundle.js:1390
__webpack_require__ @ inline.bundle.js:55
0 @ main.bundle.js:232
__webpack_require__ @ inline.bundle.js:55
webpackJsonpCallback @ inline.bundle.js:26
(anonymous) @ main.bundle.js:1

جالب است در قسمت BackEnd WebAPI در web.config کد زیر را اضافه کرده ام:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>

hakim22
یک شنبه 20 آبان 1397, 10:51 صبح
در ASP.NET Core برای فعال سازی CORS باید سرویس و میان افزار اون رو اضافه کنید.


public void ConfigureServices(IServiceCollection services)
{
services.AddCors();
}



public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole();

if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

// Shows UseCors with CorsPolicyBuilder.
app.UseCors(builder =>
builder.WithOrigins("http://example.com"));

app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}

ahanshahr
یک شنبه 20 آبان 1397, 12:19 عصر
middle ware رو اد کن

reza_web
پنج شنبه 25 بهمن 1397, 07:39 صبح
سلام
متاسفانه با این کدها هم همچنان همان خطا را میدهد
راه حل نداره؟