使用jquery内置$ .ajax方法看起来像这样
$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://myurl.com/webservice&callback=?",
...
});
只想引起对type: "GET",
行的注意
使用$ .ajax执行http PUT只需更改type: "PUT",
此代码示例来自JSON parsing from cross domain using jquery ajax
使用google-code的jquery.jsonp https://github.com/jaubourg/jquery-jsonp
以下是将jquery.jsonp.js与GET方法一起使用的示例
$.jsonp({
cache: false,
url: 'http://www.mydomain.com/logicalurl/2/',
callbackParameter: 'callback',
timeout: 10000,
success: function(json, textStatus, xOptions) {
myglob = json;
MyModulePatternObject.initNew(json);
},
error: function (xOptions, textStatus) {
console.log("fail");
}
});
这完美无缺。如何做一个GET jsonp请求不是我的问题。
在$ .jsonp中,想要执行其他http方法:PUT POST DELETE OPTIONS ...? $ .jsonp是否支持type="PUT",
?
在文档中根本没有提到它:API.md和TipsAndTricks.md也没有在源代码中提及。
@ohgodwhy 有一个hack(iframes / Proxy)来获得POST 2跨域工作。 Using PUT/POST/DELETE with JSONP and jQuery
@thefrontender 链接文章建议调查“跨域资源共享(CORS)”
支持CORS同一篇文章还说,“你可以将JSON编码为一个URL参数,但是即使你这么想也会感到羞耻。”在历史的所有历史中,羞耻从未阻止任何人?简单,懒惰,在有限的情况下完成工作。
每个人都有帮助......
答案 0 :(得分:2)
JSON-P的工作原理是在您的文档中注入脚本标记:它不是传统的XHR请求。
因此您通常只能执行GET请求。你不能执行PUT请求。
本文中的更多详细信息:http://johnnywey.wordpress.com/2012/05/20/jsonp-how-does-it-work/