这段时间在学习移动app的混合开发,使用的框架主要是ionic。在跨域访问的时候,出现了问题
XMLHttpRequest cannot load http://www.phonegap100.com/appapi.php?a=login2. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access.
可能对前端老鸟来说,这个问题比较简单。但是对于菜鸟而言还是比较麻烦的。
借鉴了很多网上资料,因为没有留存借鉴地址,那么在这里就自己稍微总结一下。
出现这种问题,一般是两端调试:服务器端和前端。
服务器端:一般是没有配置跨域访问的访问字头,这个需要修改一下服务器端的代码:
php:$postData=file_get_contents('php://input', true); $d=json_decode($postData); $username=isset($d->username)?dhtmlspecialchars($d->username):''; $password=isset($d->password)?dhtmlspecialchars($d->password):'';
其他端的话可以参考
http://bbs.phonegap100.com/thread-2091-1-1.html
前端:一般的给的解决方式是在chrome的启动的时候添加 --disable-web-security参数。但是这个解决方法在chrome的3.0版本以后是没有效果的。那么有两种方式可以解决:
第一种直接在chrome上添加插件:
Allow-Control-Allow-Origin: *
1.0.3 这个我测试了,没有问题。第二种方式:--allow-file-access-from-files参数,但是我测试了一下,没有效果。
在这里仅仅是记录一下,给自己以后工作留个备份