【发布时间】:2013-08-03 16:41:13
【问题描述】:
我正在使用以 JSONP 作为数据类型的 JQuery ajax post 来解决 CrossDomain的问题
这是我的代码实现:
$.ajax({
statusCode: {
200: function() {
alert("page found");
},
302: function() {
alert("page redirect");
}
},
url: "http://exemple.com/j_spring_security_check",
type: "post",
dataType: 'jsonp',
jsonp: false,
jsonpCallback: 'localJsonpCallback',
contentType: 'application/json; charset=utf-8',
data: {ajax: true, username: 'user1', password: 'pass'},
success: function(){
alert("success");
},
error:function(jqxhr, textStatus, error){
alert("textStatus : " + textStatus + "\n error" + error);
}
});
function localJsonpCallback(data) {
alert("localJsonpCallback : " + data);
}
问题是我收到此消息的错误:
errorParsing , localJsonpCallback 回调未被调用。
我知道为什么我会收到这种信息,因为客户参加了这样的形式:
localJsonpCallback({"成功":1});
但我得到了这样的结果:{“成功”:1}
问题是回调方法没有在服务器中实现,因为这些家伙知道如何用 spring security 覆盖这个方法。这就是它不被调用的原因。 而且我无权访问服务器。
有没有办法在服务器不实现回调函数的情况下得到 JSONP 响应??
PS:我必须使用 JSONP 来避免类似错误 access-control-allow-origin not allowed
【问题讨论】:
-
不使用代理是不可能的。如果您有自己的服务器,则可以在服务器端获取数据并使用回调函数再次提供。
标签: jquery jsonp jquery-callback crossdomain.xml