使用PUT / POST / DELETE与JSONP和jQuery

时间:2011-03-17 21:28:34

标签: javascript jquery web-services rest

我正在创建一个支持跨域请求,JSON / JSONP支持和主HTTP方法(PUT / GET / POST / DELETE)的RESTful API。现在虽然很容易通过服务器端代码访问此API,但将它暴露给javascript会很好。据我所知,当使用jQuery执行JSONP请求时,它只支持GET方法。有没有办法使用POST / PUT / DELETE来执行JSONP请求?

理想情况下,我想在jQuery中使用一种方法(如果核心不支持这个,则通过插件),但我也会采用简单的javascript解决方案。任何指向工作代码或如何编码的链接都会有所帮助,谢谢。

4 个答案:

答案 0 :(得分:70)

答案 1 :(得分:12)

  

有没有办法使用POST / PUT / DELETE来执行JSONP请求?

没有。

答案 2 :(得分:8)

没有。考虑JSONP是什么:在文档中注入新的<script>标记。浏览器执行GET请求以提取src属性指向的脚本。这样做时无法指定任何其他HTTP动词。

答案 3 :(得分:2)

  • 而不是用JSONP方法敲打我们的头脑,实际上不会 默认情况下支持POST方法,我们可以选择CORS。这对传统的编程方式没有太大的改变。通过简单的Jquery Ajax调用,我们可以使用跨域。
  • 在CORS方法中,您必须在服务器端脚本文件中或服务器本身(在远程域中)添加标头,以启用此访问。这非常可靠,因为我们可以阻止/限制域名进行不必要的呼叫。
  • 可在wikipedia页面中详细找到。