我正在使用 PhoneGap 构建一个移动应用程序,我需要它来适应我的服务 RESTful api。
基本上,如果我想检索/删除/更新/检查/(非幂等操作)资源,则通过 jQuery 的 ajax 方法向 http://example.com/resource/:id 发出 GET/DELETE/PUT/HEAD/ POST请求支持的。这就是我遇到问题的地方。
由于PhoneGap 保存文件并在本地提供它们(例如:file://file.html),我将在ajax 调用中遇到跨域问题。此外,我了解 JSONP 基本上是将脚本插入到文档中,因此是一种请求方法的解决方案
这里有一些想法:
- 不是请求 JSON 或 JSONP 数据类型,而是请求 HTML 工作,然后将文档响应解析为 JSON 对象?
- 对于每个请求,在页面中创建和删除一个 iFrame,如这张海报Using PUT/POST/DELETE with JSONP and jQuery(感觉肮脏和不雅)
- 带有用户名/密码或令牌的某种形式的服务器端 CORS 与请求一起发送以允许这样做(我首先在 iOS 上推出)
- 其他一些我无法创造性地使用的策略。
这个问题最优雅的解决方案是什么?欢迎使用插件。
TL;DR:如何为不同 HTTP 方法的 $.ajax 请求添加跨域支持?