“ http:// localhost:8100”已被CORS政策错误阻止

时间:2019-03-14 06:50:06

标签: angular ionic4

我在php中有rest api,正在尝试在离子应用程序中访问,但遇到跨策略错误。

这是我正在设置的php标头

let a = vec![1, 2, 3, 4].into_iter().map(|x| x * 2);
let b = vec![0, 3, 5, 6, 7].into_iter().map(|x| x * 3);
let c = a.chain(b);
assert_eq!(
    c.filter(|&x| x > 5).collect::<Vec<u8>>(),
    vec![6, 8, 9, 15, 18, 21]
);

这是我从中调用api的离子代码

  <?php
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
    header('Access-Control-Allow-Headers: Content-Type,Accept,Authorization');

这是我得到的错误

import { HttpClient } from '@angular/common/http'

constructor(public http: HttpClient
  ){}
 login(body){
     return this.http.post(SERVER_URL+LOGIN,body);

  }

2 个答案:

答案 0 :(得分:0)

您需要能够使用PHP应用程序中的OPTIONS方法来响应请求。

您的浏览器或应用正在发送未提供的OPTIONS请求(预检)。

有关更多信息,您可以看到以下答案:CORS with php headers

答案 1 :(得分:0)

  1. 覆盖CORS策略的一种方法是安装扩展程序。它 将Allow-Control-Allow-Origin:*标头添加到所有 浏览器收到的回复。
  2. 您可以做的另一件事是在请求中指定您 想绕过CORS安全机制。你可以用 通过将mode参数设置为no-cors来获取API: fetch('http://localhost:8080/posts', { mode: 'no-cors' });