Ответ со статусом: 0 для URL: null

У меня есть служба, которая делает пост. Служба размещается на другом компьютере. Когда я пытался публиковать сообщения с помощью Postman, он работал нормально. Теперь, когда я попытался опубликовать сообщение с помощью своего приложения Angular2, которое запускается на другом компьютере, я получил сообщение об ошибке «Ответ со статусом: 0 для URL: null». Код в моем сервисе angular выглядит следующим образом:

postQuestions() {
    var json = JSON.stringify({
        "TestInfo_FK"  : "612",
        "Resource_FK"  : 0,
        "QuestionNo"   : 22,
        "ContentType"  : "HTML",
        "Content"      : "This is the question from Jason",
        "NoOptions"    : 4,
        "OptionLayout" : "Vertical",
        "Answer"       : "A"
    });


    var url = 'http://my.service.net/api/ONLINE/Question';
    var params = 'json=' + json;
    var headers = new Headers();
    headers.append('Content-Type', 'application/json');
    headers.append('Access-Control-Allow-Origin', '*');

    return this._http.post(url, params, {
        headers: headers
    })
    .map(res => res.json());
}

как решить эту проблему?


person user1120260    schedule 09.08.2017    source источник


Ответы (2)


Эта ситуация возникает, когда к вашей размещенной службе невозможно получить доступ через перекрестное происхождение (CORS). Поэтому, если вы обращаетесь к службе Spring Rest, используйте аннотацию @CrossOrigin для службы. ИЛИ используйте flask-restful для создания удаленного API

из flask_restful.utils импортировать Cors из flask_restful импортировать API

API = API (приложение, декораторы = [cors.crossdomain (происхождение = '*')])

person Deepu    schedule 09.08.2017

Я узнал, что вызывало проблему. Это проблема на стороне сервера. Сначала необходимо установить промежуточное ПО CORS, а затем остальные промежуточные ПО API.

Обратите внимание, что я работаю с Laravel 5.6 + Angular 5.

Неправильный код

'api' => [ 'throttle:60,1', 'bindings', \Barryvdh\Cors\HandleCors::class, ],

Текущий код

'api' => [ \Barryvdh\Cors\HandleCors::class, 'throttle:60,1', 'bindings' ],

person Rameez Rami    schedule 07.05.2018