jsonp回调函数没有被调用
我正在做一个跨数据库AJAX调用dataType为jsonp。我在URL中设置了Jsoncallback querystring参数。但是,回调函数根本没有被调用,而是页面被重定向到自身。jsonp回调函数没有被调用
的AJAX调用基本上击打点CMS服务,当我在浏览器直接测试它返回以下响应:
myfunction({'state':'MEL', 'plan':'true' })
这里,“myfunction的”是我通过作为Jsoncallback参数的值的字符串在URL
这里是我的AJAX调用
$.ajax({
url:"http://website.hostname.com/validatepostcode.dot?postcode="+encodeURIComponent(thepostcode)+ "&Jsoncallback=parseResponse",
dataType: "jsonp",
async: false,
crossDomain:true
});
function parseResponse(data)
{
alert(data);
}
我缺少的AJAX调用任何参数?或者服务端可能有问题?
$.ajax
jQuery函数具有特定的配置选项,用于提供似乎从代码中缺少的回调函数的名称。
通过设置dataType: 'jsonp'
jQuery的
增加一个额外的 “?回调=?”您网址的结尾指定回调
这是造成一个问题,因为你也是在url
增值的回调函数。
要覆盖这一点,你可以添加jsonp
选项其中:
覆盖在JSONP请求的回调函数的名称。这个值将被用来代替'callback =?'中的'回调'。部分查询字符串在url中。
您也可以指定data
作为一个单独的选项(参见Sending Data to the server),我也加入以下。
以下代码应正确使用parseResponse()
作为回调函数。
$.ajax({
url: 'http://website.hostname.com/validatepostcode.dot',
type: 'get',
data: {postcode: encodeURIComponent(thepostcode)},
dataType: 'jsonp',
jsonp: 'parseResponse'
});
谢谢..我会尝试它,让你知道。 – 2013-05-01 16:01:23
谢谢@andyb。它有助于。现在又多了一个问题。执行进入回调函数后,我试图通过动态设置其action属性来发布表单。这没有发生。它总是重定向到自我。我将为此提出单独的帖子。 – 2013-05-02 04:52:23
的点CMS服务读取我发送查询字符串参数,并返回包裹在像myfunction的函数名JSONP格式的响应({“状态”:“MEL”,“方案”:“真”}) – 2013-05-01 13:46:05