2017-06-17 28 views
-1

在API中,它们在没有授权的情况下调用就没有问题。HTTP授权标头在离子2中不与codeigniter api一起发送0

如何为它设置标题? “谢谢”

let headers: Headers = new Headers({ 'Authorization': token, 'Content-Type': 'application/json; charset=UTF-8' });` 

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

let params: URLSearchParams = new URLSearchParams(); 
params.append('latitude', '23.259933'); 
params.append('longitude', '77.412615'); 
params.append('nearby', '5'); 

return this.http.post(baseUrl, params, options) 
      .map(
       (response: Response)=>{ 
        return response; 
       } 
      ) 

Chrome的控制台:

Response for preflight has invalid HTTP status code 404 
+0

这里有什么问题? – maninak

+0

我试图发布请求与授权标题,但不发送和铬控制台返回“预检的响应具有无效的HTTP状态代码404” – yash

+0

在您发送请求的服务器上启用CORS。 – Khurram

回答

0

这是因为浏览器之前将您的请求到服务器的头发送实际的请求(所谓preflight),从而验证您的请求是否符合在服务器的配置中定义的的CORS策略。

因此,您需要做的是仔细检查您正在联系的服务器是否已正确配置为接受请求。

确保您的后端服务器不仅接受POST请求,而且还接受针对相同端点url的OPTIONS请求。 OPTIONS请求应该返回成功200代码。

在该服务器上,您可能有类似于“当用户点击端点/abc与请求类型POST,然后返回一些数据”。你还需要的东西,说:“当用户点击端点/abc与请求类型OPTIONS回报200 OK

如果一切都失败了,你可以尝试在你的浏览器中使用this plugin,但请记住,这将有助于仅持续发展,是一个当然不适用于生产的创可贴解决方案。