我很难让$.ajax
使用我的网络服务。
我有一个用Java编写的web服务(我在Java上很糟糕),它希望像example.com/webservice/somestuff/callback
这样的网址
并返回类似callback({"success":true})
我的jquery类似于:
$.ajax({
type: "GET", dataType: "jsonp",
url: '//example.com/someStuff',
}).done(doSomething)
问题是,jQuery使JSONP工作的所有好东西让我搞砸了。它附加一个查询字符串(即?callback=jQuery19786...
),我的服务只需要一个常规路径参数。
如果我能以某种方式说服jQuery做example.com/webservice/somestuff/jQuery19786...
那将是理想的。
想法?
答案 0 :(得分:2)
只需将??
放在您希望回放的位置。
$.ajax({
type: "GET", dataType: "jsonp",
url: '//example.com/someStuff/??',
}).done(doSomething)
另一种方法是使用beforeSend选项在jQuery修改它之后操作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;
}
});