我试图让jsonp调用jquery和我的asp.net-mvc网站。 I found this article which i tried to copy但我的回调中没有得到断点:
这是我的jquery代码:
$.ajax({
url: "http://www.mySite.com/MyController/Terms",
type: "GET",
dataType: "jsonp",
timeout: 10000,
jsonpCallback: "localJsonpCallback"
});
function localJsonpCallback(json) {
var terms = json.HTMLText;
$("#term2").html(terms);
}
这是我的控制器代码:
public JsonpResult Terms()
{
var data = GetData();
return this.Jsonp(data);
}
JsonpResult 和 this.Jsonp are defined as per this page:
所以我似乎无法得到一个回调但是当我打开firebug脚本部分时,我确实看到一个文件列出的时候是url并且有:
Terms?callback=localJsonpCallback
当我查看内容时,我看到了正确的json对象内容:
localJsonpCallback({"HTMLText":"PRIVACY POLICY: Your privacy is very important to us"});
所以这告诉我数据会回到客户端,但回调似乎没有被触发,文本输入也没有被填充。
任何人都可以找到我正在做的事情的问题,或者对于为什么这不起作用有任何解释?
答案 0 :(得分:1)
您没有为ajax请求定义success
函数。您使用的jsonpCallback
参数仅定义将由服务器用于包装JSON响应的查询字符串参数的名称。
所以试试这样:
$.ajax({
url: 'http://www.mySite.com/MyController/Terms',
type: 'GET',
dataType: 'jsonp',
timeout: 10000,
jsonp: 'jsoncallback',
success: function(json) {
var terms = json.HTMLText;
$('#term2').html(terms);
}
});
同时结帐following answer。