我试图通过Ionic应用程序从浏览器点击URL并获得CORS问题,错误是:
XMLHttpRequest无法加载
http://school_mit.schnotify.com/api/v1/
。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源'http://192.168.2.10:8100
'因此不允许访问。
答案 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 -
但我更喜欢使用扩展程序,因为您可以在需要时打开它,而无需更改服务器设置。