【发布时间】:2014-08-14 04:41:15
【问题描述】:
我正在研究一个使用 jquery ajax 实现 jsonp 的示例。
谁能解释一下为什么回调函数'customcb'在下面的例子中没有被调用,我很困惑。
从客户端应用程序对 ASP.NET MVC 服务器应用程序进行 $.ajax 调用,下面是客户端代码
$().ready(function ()
{
$.ajax({
url: 'http://localhost:55632/',
type: 'GET',
dataType: 'jsonp',
jsonp: 'cbqs',
jsonpCallback: 'customcb',
success: function (data)
{
alert('success');
},
error: function (XMLHttpRequest, textStatus, errorThrown)
{
alert(errorThrown);
}
});
function customcb()
{
alert('customcb');
}
});
下面是用服务器应用程序编写的简单 ASP.net MVC 操作
public class HomeController : Controller
{
public string Index()
{
Emp x = new Emp
{
fname = "first name",
lname = "last name"
};
string json = JsonConvert.SerializeObject(x);
Response.ContentType = "application/x-javascript";
string str = "customcb(" + json + ")";
return str;
}
..............
..............
预期结果:应显示“成功”和“自定义”警报消息。
实际结果:仅显示“成功”警报消息。
注意:我可以访问成功函数返回的数据,并且没有 JS 错误。
请告诉我为什么没有显示“customcb”警报消息。
【问题讨论】: