根据我的理解,JSONP 只能使用 GET 动词来实现。假设这是真的,我认为这是真的,那么这排除了对真正 REST 的核心合规性,在这种情况下,您应该使用不同的动词,即 GET、PUT、POST、DELETE 等......用于不同的特定目的。
我的问题是,如果我说允许使用 JSONP 服务使用 get 请求更新和删除资源,我可能会遇到什么类型的障碍。
提供 JSON 服务并声明用户需要服务器端代理来使用 JavaScript XDomain 是否更好?
干杯,
安德鲁
最佳答案
From my understanding JSONP can only be achieved using the GET verb.
是的。
幸运的是,简单的幂等信息 GET 请求是跨域 JSON 最常见的用例。
this rules out core compliance with true REST in which you should make use of different verbs i.e. GET,PUT,POST,DELETE etc
是的。
我不太担心“遵守”作为抽象标准的 REST,但如果杂散的、可泄漏的、可缓存的 GET 请求可能会意外产生副作用,这是一个真正的问题。
您可以使用一些策略来降低出现此类问题的可能性,例如要求每个 API 用户和/或一次性使用提交 key 作为参数以允许操作继续进行。如果您允许通过 JSONP 对 API 进行写访问,您无论如何都需要考虑这种事情,以防止 XSRF 攻击。
关于.net - JSONP 对真正 REST 的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2943103/