2015-09-24 3 views
1

Я получаю следующее сообщение об ошибке на моем веб-проекте uril/asp.net. XMLHttpRequest не может загрузить http://localhost:7291/api/products. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Происхождение 'http://localhost:7305', следовательно, не допускается. В ответе был код статуса HTTP 500.Угловые данные JS CORS не загружаются

Я знаю, что это связано с неправильным выполнением CORS, но я не уверен, что я делаю неправильно. Я следую учебнику, и насколько я могу судить, у меня все в порядке?

Вот информация с вкладки сети в chrome debug. Удаленный адрес: [:: 1]: 7291 URL запроса: http://localhost:7291/api/products Запрос Метод: GET Код Статус: 500 Internal Server Error Response Headers (8) Заголовки запросов просмотреть исходный Accept: приложения/JSON, текст/равнина, / Accept-Encoding: GZIP, выкачать, SDCH Accept-Language: EN-US, еп, д = 0,8 Подключение: держать-жив хост: локальный: 7291 Происхождение: http://localhost:7305 Referer: http://localhost:7305/ User-Agent: Mozilla/5.0 (Windows NT 6 0,3; WOW64) AppleWebKit/537.36 (KHTML, как и Gecko) Chrome/45.0.2454.93 Safari/537.36

Здесь я нахожу карту URL-адреса API.

(function() { 
"use strict"; 
angular 
.module("common.services", ["ngResource"]) 

.constant("appSettings", 
{ 
    serverPath: "http://localhost:7291/" 
}) 
}()); 

И это, как я устанавливаю вверх EnableCOrsAttribute:

[EnableCorsAttribute("http://localhost:7305", "*", "*")] 

Может кто-нибудь увидеть, что я делаю неправильно? Если требуется больше кода, пожалуйста, дайте мне знать. Благодарю.

ответ

0

Первый шаг, используйте такой инструмент, как Postman или Fiddler, чтобы сначала проверить конечную точку обслуживания, чтобы обеспечить функциональность.

Это выглядит так, как будто это не проблема CORS вообще, из-за 500 ответа:

Status Code:500 Internal Server Error 

CORS вопрос о нормальной реакции успеха, как правило, проявляется в состоянии 0 или -1 в клиент, но то, что вы испытываете, является ошибкой на стороне сервера. Я видел это в своем собственном коде и подозреваю, что ваша реализация на стороне сервера вводит только заголовки CORS в конце обработки запроса, а поскольку обработка аномально отменена, заголовки CORS не сделали ее там.

После того, как вы подтвердили функциональность сделать запрос OPTIONS на конечной точке для проверки CORS:

OPTIONS/HTTP/1.1 
Host: localhost:7291 
Cache-Control: no-cache 
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW 

Затем проверить заголовки ответа, если ваш CORS правильно включен на сервере вы должны увидеть Access-Control -Подробные заголовки аналогичны следующим образом:

Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS, ETAG 
Access-Control-Allow-Origin: http://localhost:7305