响应状态:0表示URL:null

时间:2017-08-09 05:22:50

标签: service angular2-services

我有一个发帖的服务。该服务正在另一台机器上托管。当我试图使用Postman发布时,它工作正常。现在,当我尝试使用在另一台机器上运行的Angular2应用程序发布时,我收到错误“响应状态:URL为0:null”。我的角度服务中的代码如下:

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());
}

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

当您的托管服务无法通过跨源(CORS)访问时会出现这种情况。因此,如果您正在访问Spring Rest服务,则在服务上使用@CrossOrigin注释。 或使用 flask-restful用于构建远程API

来自flask_restful.utils import cors 来自flask_restful import Api

api = Api(app,decorators = [cors.crossdomain(origin ='*')])

答案 1 :(得分:0)

我发现了导致问题的原因..它是服务器方面的问题。您需要先设置CORS中间件,然后再设置剩余的API中间件。

请注意我正在使用Laravel 5.6 + Angular 5

错误代码

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

Currect Code

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