Mar*_*uth 8 c# asp.net ajax jquery json
我正在使用以下脚本进行调用,该脚本在单击锚标记时调用
function GetToken(videoId) {
debugger;
var json = $.getJSON("/Vod/RequestAccessToken/"+videoId, function(result){
alert("token recieved: " + result.token);
});
}
Run Code Online (Sandbox Code Playgroud)
在服务器应用程序中,我接收到调用,因此我知道它是一个有效的URL,但是没有调用回调.如果我通过jquery代码(f11/f10)设置回调被调用?? !!!?
服务器以类的形式从MVC应用程序返回结果
// function called
public JsonResult RequestAccessToken(int id)
{
Token t = new Token();
t.MasterId = Guid.NewGuid();
var result = new TokenResult(t.MasterId);
return this.Json(result, JsonRequestBehavior.AllowGet);
}
// class returned
public class TokenResult
{
public TokenResult() { }
public TokenResult(Guid g) { token = g.ToString(); }
public string token = null;
}
Run Code Online (Sandbox Code Playgroud)
当我通过浏览器result =访问url时
{
"token":"c877453e-739d-4883-9310-91ddd707d6af"
}
Run Code Online (Sandbox Code Playgroud)
Nic*_*ver 21
如果结果不成功,则不会触发该回调,这通常是由于返回了无效的JSON.要给它一个测试,你可以使用这样的长形式$.getJSON,这样你就可以看到错误:
$.ajax({
url: url,
dataType: 'json',
success: function(result){
alert("token recieved: " + result.token);
},
error: function(request, textStatus, errorThrown) {
alert(textStatus);
},
complete: function(request, textStatus) { //for additional info
alert(request.responseText);
alert(textStatus);
}
});
Run Code Online (Sandbox Code Playgroud)
如果它是JSON /解析器错误,您可以采取您的响应,看看JSONLint有什么问题,请访问:http://www.jsonlint.com/
可能的赌注是您没有返回有效的 JSON。jQuery 文档指出,“从 jQuery 1.4 开始,如果 JSON 文件包含语法错误,请求通常会默默失败。” 您提供的 JSON 文本是否通过JSON Lint?您可能还想切换(至少暂时)到jQuery.ajax。它允许更多的错误处理。就像是:
$.ajax({
url: "/Vod/RequestAccessToken/"+videoId,
dataType: 'json',
error: function(xhr, textStatus, errorThrown){
},
success: function(result){
alert("token recieved: " + result.token);
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13517 次 |
| 最近记录: |