如何处理getJSON调用中的错误?我试图使用jsonp引用跨域脚本服务,你如何注册错误方法?
我正在使用上面的方法,它适用于URL中的一个参数.
例如Students/getstud/1,应用控制器/动作/参数格式的地方.
现在我在Students控制器中有一个动作,它接受两个参数并返回一个JSON对象.
那么如何$.getJSON()使用post方法发布数据?
类似的方法也是可以接受的
关键是用AJAX调用控制器的动作.
我现在正在玩ASP.net MVC和JQuery.我遇到了似乎没有意义的行为.
我正在调用JQuery的$.getJSON函数来填充一些div.该事件在事件中触发$(document).ready.这非常有效.
有一个小的AJAX.BeginForm,添加了在填充div时使用的另一个值.它正确调用远程函数,并在成功时调用原始的javascript函数来重新填充div.
这是奇怪的部分:在FireFox和Chrome中 - 一切正常.但是在IE8(Beta)中,对填充的Div脚本(调用$ .getJSON函数)的第二次调用会获取缓存数据,而不会询问服务器!
希望这个问题有道理:在坚果壳中 - 为什么要$.getJSON获取缓存数据?为什么它只影响IE8?
是否可以async: false在调用时设置$.getJSON()以便调用阻塞而不是异步?
未捕获的TypeError:无法使用'in'运算符搜索"length"中的"length"
这是我尝试$.each对此JSON对象执行此操作时收到的错误:
{"type":"Anuncio","textos":["Probando esto","$ 20150515"],"submit":"codParameters?___DDSESSIONID\u003d14EA4721A904D6DD71591156996E29F7%3A%2FMobilTest"}
Run Code Online (Sandbox Code Playgroud)
我也尝试用stringify做同样的事情,但是我收到了同样的错误:
{\"type\":\"Anuncio\",\"textos\":[\"Probando esto\",\"$ 20150515\"],\"submit\":\"codParameters?___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest\"}"
Run Code Online (Sandbox Code Playgroud)
如果我___DDSESSIONID\\u003d06CBEC9D1A53616EFF703A8C71FBC2B4%3A%2FMobilTest从对象中删除参数,$ .each工作正常.
为什么会发生这种情况?
提前致谢.
我使用getJSON从服务器端获取结果,但面临浏览器缓存问题.我希望缓存是假的.我在getJSON调用之前尝试使用它.
$.ajaxSetup({
cache: false
})
Run Code Online (Sandbox Code Playgroud)
但我没有得到预期的结果.它仍然显示旧的结果.任何帮助将不胜感激.
我还确定了一些其他解决方案,例如使用.ajax,但我真的不想使用它.
我需要做一个getJSON()请求,但是如何传递授权和自定义标头?
我遇到了请求标头取名的问题,但不是值.通过fiddler中的手动请求显示URL,以便作为选项而不是GET/Url插入.
这是我们尝试做的一个例子,它在小提琴手中运行良好; 我怎样才能用AJAX函数复制它?
GET /Service.svc/logins/gdd53535342/houses/vxcbdfsdg/people/dsgsdggd?format=json HTTP/1.1
User-Agent: Fiddler
Authorization: Basic rgbg423535fa23y4436
X-PartnerKey: df3fgeg-g5g6-b55b-f3d2-dsgg353523
Host: 154.34.53.54:2757
Run Code Online (Sandbox Code Playgroud)
JavaScript代码:
xhr = new XMLHttpRequest();
$(document).ready(function() {
$.ajax({
url: 'http://localhost:437/service.svc/logins/jeffrey/house/fas6347/devices?format=json',
type: 'GET',
datatype: 'json',
success: function() { alert("Success"); },
error: function() { alert('Failed!'); },
beforeSend: setHeader
});
});
function setHeader(xhr) {
xhr.setRequestHeader('Authorization', 'Basic faskd52352rwfsdfs');
xhr.setRequestHeader('X-PartnerKey', '3252352-sdgds-sdgd-dsgs-sgs332fs3f');
}
Run Code Online (Sandbox Code Playgroud)
Fiddler正常请求标题:
GET /service.svc/logins/jeffrey/house/fas6347/devices?format=json HTTP/1.1
User-Agent: Fiddler
Authorization: Basic faskd52352rwfsdfs
X-PartnerKey: 3252352-sdgds-sdgd-dsgs-sgs332fs3f
Host: localhost:437
Run Code Online (Sandbox Code Playgroud)
提琴手通过Ajax()请求标题:
OPTIONS service.svc/logins/jeffrey/house/fas6347/devices?format=json HTTP/1.1
Host: localhost:437
User-Agent: Mozilla/5.0 (Windows; U; …Run Code Online (Sandbox Code Playgroud) 我正在使用JS对象来创建使用Google可视化的图形.我正在尝试设计数据源.起初,我创建了一个JS对象客户端.
var JSONObject = {
cols: [{id: 'date', label: 'Date', type: 'date'},
{id: 'soldpencils', label: 'Sold Pencils', type: 'number'},
{id: 'soldpens', label: 'Sold Pens', type: 'number'}],
rows: [{c:[{v: new Date(2008,1,1),f:'2/1/2008'},{v: 30000}, {v: 40645}]},
{c:[{v: new Date(2008,1,2),f:'2/2/2008'},{v: 14045}, {v: 20374}]},
{c:[{v: new Date(2008,1,3),f:'2/3/2008'},{v: 55022}, {v: 50766}]}]
};
var data = new google.visualization.DataTable(JSONObject, 0.5);
Run Code Online (Sandbox Code Playgroud)
现在我需要动态获取数据.所以我发送一个AJAX请求到一个返回JSON字符串的页面:
"cols: [{id: 'date', label: 'Date', type: 'date'},
{id: 'soldpencils', label: 'Sold Pencils', type: 'number'},
{id: 'soldpens', label: 'Sold Pens', type: 'number'}],
rows: [{c:[{v: new Date(2008,1,1),f:'2/1/2008'},{v: 30000}, {v: …Run Code Online (Sandbox Code Playgroud) var list = [];
$.getJSON("json.js", function(data) {
$.each(data, function(i, item) {
console.log(item.text);
list.push(item.text);
});
});
console.log(list.length);
Run Code Online (Sandbox Code Playgroud)
list.length总是返回0.我已经在萤火虫中浏览了JSON并且它形成良好,一切看起来都很好.我似乎无法向数组添加项目我缺少什么?
我必须做一些非常简单的事情,但据我所知,似乎没有一种简单的方法可以做到这一点.我只想从远程源加载JSON数据,并使用jQuery将其存储在全局Javascript变量中.这就是我所拥有的:
var my_json;
$.getJSON(my_url, function(json) {
var my_json = json;
});
Run Code Online (Sandbox Code Playgroud)
my_json变量仍未定义.我认为这显然是一个范围问题.在我看来,$ .getJSON方法应该返回JSON,但它返回一个XMLHttpRequest对象.如果我这样做:
request = $.getJSON(my_url);
my_json = request.responseText.evalJSON();
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为在readystate == 4之前,responsetext保持为null.看来你必须使用回调函数来返回响应文本,因为它会在成功时触发.
这不可能是这么难!对?
getjson ×10
jquery ×10
json ×4
asp.net-mvc ×2
javascript ×2
jsonp ×2
asynchronous ×1
cross-domain ×1
firebug ×1
http-post ×1
jquery-ui ×1
post ×1