离子2后请求不起作用

时间:2017-08-28 11:36:40

标签: ios ionic-framework ionic2

我在离子2中使用以下代码来发布方法请求。

var headers = new Headers();
headers.append("Accept", 'application/json');
headers.append('Content-Type', 'application/json');
headers.append('Access-Control-Allow-Origin', '*');
headers.append('Access-Control-Allow-Headers', 'Content-Type');
headers.append('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');

let body = new FormData();
body.append('UserName', 'sp');
body.append('password', 's');

let options = new RequestOptions({ headers: headers })

this.http
    .post('http://192.168.1.9:8080/api/Restaurant/Login', body, options)
    .map(res => res.json())
    .subscribe(
        data => {
          console.log("Response is ::::::",data);
        },
          err => {
          console.log("ERROR!::::: ", err);
        }
    );

以上http://192.168.1.9:8080/api/Restaurant/Login是我的本地网址。使用此URL,我可以从iOS模拟器和邮递员获得请求/响应,但不能从离子2项目获得。

根据附带的屏幕截图我收到错误。

enter image description here

服务器端我们在CORS标题下面添加了。

<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" />
        <add name="Access-Control-Allow-Credentials" value="true" />
    </customheaders>
</httpprotocol>

任何人都可以在我错的地方帮忙吗?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

在服务器端,您是否配置了WebSecurity?我对角度的体验是它在发送实际请求之前发送飞行前OPTIONS请求,如果您的服务器不支持OPTIONS请求,那么它将拒绝它。 我不确定这是否会对你有所帮助,因为它在Spring中设置了。

fetch(settings.url, settings)
.then(function (r) {
  callback(null, {data: r});
}).catch(callback);

一切顺利!希望你能成功:) 快乐的编码