我正在开发一个使用Ionic框架的移动应用程序。我使用$http (带有自定义标题的POST),当我尝试时
离子服务器
在浏览器(chrome,firefox,.)中,我得到
对飞行前请求的响应没有通过访问控制检查:请求的资源上没有“访问-控制-允许-原产地”报头。因此,原产地'null‘不允许访问。响应具有HTTP代码405.
错误。如果我在chrome中启用CORS插件,并尝试相同的插件,我将得到
对于飞行前的响应具有无效的HTTP代码405
错误。
但是,当我将它安装在我的手机(Android/IOS)中时,一切都可以用
离子运行android
或
离子运行ios
是什么使我的浏览器限制$http,以及为什么我的手机允许它。?Webview与浏览器不同吗?
获取信息:-我使用(默认) cordova插件-控制台、设备、屏幕、状态条、白名单、键盘。
请帮帮我。如果没有正确的理解,我不能简单地构建移动应用程序。提前谢谢。
编辑1
我使用REST来处理自定义的头请求。从现在起,我不允许修改API代码,因为它在很长一段时间内对本地android应用程序运行良好。问题是,当我使用Ionic时,令我感到惊讶的是,它在我的三星Tab和IPad中工作(当我运行时没有肝负荷模式)。
我想知道的是,是什么原因导致我的浏览器和移动设备工作呢?
移动设备中的WebView不像浏览器那样具有安全策略吗?
发布于 2016-11-01 07:05:23
为什么我的移动应用程序工作正常,但在浏览器中却不行?
我在我的Ionic项目中使用cordova插件白名单。它实现了用于导航应用程序the视图的白名单策略。检查源
若要使浏览器工作,请在我的ionic.config.json中定义代理。但这只是一项工作。对于生产,我们应该让服务器显式地允许它白名单API调用。检查源
发布于 2017-12-12 18:03:44
@Naveen写了一篇关于http源文件头的浏览器和应用程序内处理之间的区别的博客文章:http://blog.ionicframework.com/handling-cors-issues-in-ionic
https://stackoverflow.com/questions/40210942
复制相似问题