让jQuery.ajax更好地使用我的jsonp Web服务
我很难让让jQuery.ajax更好地使用我的jsonp Web服务,json,jquery,jsonp,jax-ws,Json,Jquery,Jsonp,Jax Ws,我很难让$.ajax使用我的Web服务 我有一个用Java编写的Web服务(我对Java很差劲),它需要像example.com/webservice/something/callback这样的URL 并返回类似JSONP的回调({“success”:true}) 我的jquery类似于: $.ajax({ type: "GET", dataType: "jsonp", url: '//example.com/someStuff', }).done(doSomething)
$.ajax
使用我的Web服务
我有一个用Java编写的Web服务(我对Java很差劲),它需要像example.com/webservice/something/callback这样的URL
并返回类似JSONP的回调({“success”:true})
我的jquery类似于:
$.ajax({
type: "GET", dataType: "jsonp",
url: '//example.com/someStuff',
}).done(doSomething)
问题是,jQuery为使JSONP正常工作所做的一切都把我搞砸了。它附加一个querystring(即callback=jQuery19786…
),其中我的服务只需要一个常规路径参数
如果我能以某种方式说服jQuery去做example.com/webservice/something/jQuery19786…
,那就太理想了
想法?只需将
?
放置在您希望放置回调的位置
$.ajax({
type: "GET", dataType: "jsonp",
url: '//example.com/someStuff/??',
}).done(doSomething)
另一种方法是在jQuery修改url后使用beforeSend选项来操作url:
$.ajax({
url: "//example.com/foo/bar/?callback=?",
dataType: "jsonp",
cache: true,
beforeSend: function(jqXHR,options){
options.url = options.url.replace(/\?callback\=/,"");
//console.log(options.url);
//return false;
}
});
看起来不像:-(.
//example.com/sometuff/??
被转换为//example.com/sometuff?callback=…
等等。我撒谎了,哈哈。叛逆的分号把我搞砸了。这似乎是可行的。虽然现在我有了一个新问题…这个问题通过一个小的缓存得到了解决:true
我也找到了另一种解决方法,可以使用beforeSend来修改url在它被发送之前。