我正在构建一个带有电话盖的移动应用程序,我需要它适合我的服务恢复API。
基本上,如果我想检索/delete/update/check/(非数字操作)资源,请通过jQuery的ajax方法发布get/delete/put/head/post请求,以http://example.com/resource/:ID受支持。这是我遇到问题的地方。
由于PhoneGap保存文件并在本地服务(例如:file://file.html),我将在AJAX调用中遇到跨域问题。此外,我了解JSONP基本上将脚本插入文档,因此是一种解决请求方法
的方法。这里有一些想法:
- 而不是请求HTML的请求,而不是请求JSON或JSONP的数据类型,然后将文档响应解析为JSON对象?
- 对于每个请求,使用put/post/delete与jsonp and jquery(感觉肮脏且毫无意义) 在页面中创建并删除页面中的iframe
- 某种形式的服务器端COR,带有用户名/密码或发送请求的令牌(我先在iOS上推出) )
- 我无法创造性地戴上手指的其他一些策略。
解决这个问题的最优雅解决方案是什么?欢迎插件。
tl; dr:如何在$ .ajax请求不同的HTTP方法上添加跨域支持?
您必须将服务器白色列表在PhoneGap属性中。默认情况下,PhoneGap限制了对外部站点的访问,以防止安全问题。PhoneGap没有跨域问题,例如标准的HTTP托管站点。在此处阅读以获取详细信息:http://docs.phonegap.com/en/2.1.0/guide_whitelist_index.md.md.html#domain whitelist Guide