Google Chrome中的离子CORS问题

时间:2016-12-12 09:35:18

标签: javascript cors

我试图通过Ionic应用程序从浏览器点击URL并获得CORS问题,错误是:

  

XMLHttpRequest无法加载http://school_mit.schnotify.com/api/v1/。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://192.168.2.10:8100'因此不允许访问。

3 个答案:

答案 0 :(得分:0)

您需要在后端添加http://192.168.2.10作为允许的来源。或者您可以使用代理。

答案 1 :(得分:0)

必须在服务器端启用CORS。离子应用程序适用于Rest API。如果你有一个PHP后端,你可以使用像Slim这样的框架,并在你的php文件中添加这些头文件。

<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization");
header('Access-Control-Allow-Headers: Content-Type, x-xsrf-token');
header("Access-Control-Allow-Headers: X-Requested-With");
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
        header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
        exit(0);
}

/*Resr of server file*/

?>

服务器端的这些头文件应解决大部分CORS问题。您可以用其他语言实现相同的

答案 2 :(得分:-1)

我遇到了同样的问题,我刚刚使用this Chrome Plugin修复了问题 它允许向标头添加Allow-Control-Allow-Origin: *,以便您可以从任何来源发出Ajax请求。

在Chrome中,您还可以use flags

  

chrome --disable-web-security

  

- allow-file-access-from-files --allow-file -

但我更喜欢使用扩展程序,因为您可以在需要时打开它,而无需更改服务器设置。