看起来人们过去曾遇到过Accept标题的问题,但我不确定我的问题是否相关。 使用jQuery 1.4.2,我无法使用getJSON()获取JSON。 我可以在Firebug中观察请求/响应,看起来问题的根源是有问题的资源根据Accept标头返回不同的结果。 即使文档说它应该设置,在Firebug中它显示为“ / ” – 显然,我想要“application / json”。 这是一个已知的错误? 我应该设置一些我不知道的旗帜吗? ETA:请求是跨站点,如果这很重要,但我正在通过callback=? 查询参数,所以JQuery(成功!)将其视为JSONP。 我在这个特殊情况下调用的服务支持一个接受覆盖查询参数( &accept=application/json ),所以我让它手动工作,但我仍然认为标题搞砸是奇怪的,并希望我能够修复它,所以在处理可能不那么宽容的不同服务时,我不会再遇到这种情况。 我没有一种简单的方法来复制/粘贴我的开发环境中的代码,但这里是要点: $.getJSON(baseURL + “?item=” + itemNum + “&callback=?”, function(data){ console.log(data); } 正如您所看到的,这并不完全复杂,并且应该 (我99%确定…)导致XHR与application/json的Accept标头一起发送。 就像我说的那样,根据Firebug的Net控制台,情况并没有发生。 如果重要,这是在Firefox 3.6.8中。 再次ETA:对于仍在阅读这个的人,是的,它仍在发生,不,我不知道为什么。 就像我说的,简单的getJSON()调用,真正的基本语法,跨站点,被视为JSONP,因为它包含一个回调查询参数。 仍然愿意接受建议!
我正在尝试向我无法控制的域上的API发出简单的JSON get请求。 我的代码很简单: $(document).ready(function () { $.ajax({ type: ‘GET’, url: ‘http://pubapi.cryptsy.com/api.php?method=marketdatav2’, success: function (data) { console.log(data); } }); }); 但由于这是跨域请求,因此我在Chrome控制台中收到此错误: XMLHttpRequest cannot load http://pubapi.cryptsy.com/api.php?method=marketdatav2. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://fiddle.jshell.net’ is therefore not allowed access. 当我尝试添加参数dataType: ‘jsonp’ ,Console将返回此错误: 未捕获的SyntaxError:意外的令牌: 但是当我检查Chrome中的网络选项卡时,我看到在Headers下,状态代码是200 OK,我可以在Response选项卡中看到完整的响应,但是控制台仍然显示“Unexpected Token:”错误和JQuery JSON请求仍然失败。 这是JS Fiddle链接: http : //jsfiddle.net/6Qcq2/您可以看到相同的结果 我试过在http://www.hurl.it上运行url,它显示状态OK和响应,所以我一定做错了。 我整天都在试图弄清楚如何解决这个问题。 […]
我试图解析具有精确结构的JSON文件,如下所示。 { “students”: { “student”: [ { “id”: 1, “name”: “John Doe”, “image”: “pic1.jpg”, “homepage”: “http: //www.google.com” }, { “id”: 2, “name”: “Jane Doe”, “image”: “pic1.jpg”, “homepage”: “http: //www.google.com” } ] } } 我使用以下jQuery函数: function GetStudents(filename) { $.getJSON(filename, function(data){ $.each(data.student, function(i,s){ var id = s.id;; var name = s.name;; var img = s.image;; var homepage […]
我有一个如下的JSON数组: var jsonArray = [{“k1″:”v1”},{“k2″:”v2”},{“k3″:”v3”},{“k4″:”v4”},{“k5″:”v5”}] 我不知道这个数组中存在哪些键。 我想从数组中获取所有现有密钥。 它可能是这样的: for(i=0;i<jsonArray.lenght;i++){ // something like- key = jsonArray[i].key // alert(key); } 请告诉我获取Json数组中所有键的方法或方法。 问候
我怎么能用javascript和jquery获取json文件的数组json 我对下一个代码感到满意,但它不起作用: var questions = []; function getArray(){ $.getJSON(‘questions.json’, function (json) { for (var key in json) { if (json.hasOwnProperty(key)) { var item = json[key]; questions.push({ Category: item.Category }); } } return questions; }) } 这是名为:questions.json的json文件 { “Biology”:{ “Category”:{ “cell”:{ “question1”:{ “que1″:”What is the cell?” }, “option1”:{ “op1”:”The cell is the basic structural and functional […]
JSON.stringify( $(“p”) );行JSON.stringify( $(“p”) ); 导致错误: InvalidStateError: Failed to read the ‘selectionDirection’ property from ‘HTMLInputElement’: The input element’s type (‘button’) does not support selection. (我正在使用Google Chrome 34) 为什么? 我怎么能让$(“p”)更便携,以便我可以存储它或在消息中传递它?
嘿所有,我想知道是否有人知道使用正则表达式或通配符运算符(或SQL中的pehaps ‘%LIKE%’ ),所以我可以使用JSONPath在一大组JSON数据中进行搜索。 例如(是的,我正在解析,而不是eval( )在我的应用程序中的数据): var obj = eval ( ‘({ “hey”: “can you find me?” })’ ); 我希望能够像这样查看数据: $.[?(@.hey:contains(find))] // (in jQuery terminology) 其中参数的内容是我的数据中{ “key” : “value” }对的部分或全部值。 目前我只找到了关于> , < , =和!=关系运算符的文档,这些文档并没有给我太多的灵活性。 有没有人知道我只能通过JSONPath找到这些数据(无需遍历所有条目)? 我不想使用Dojo的JSONQuery,因为这需要另一个库。 但是,它允许你这样做,这里是他们的例子: [?description~’*the*’] 问我是否想要更多澄清这个问题。
我有一个JSON对象,它在页面加载时启动,如下所示: data[foo] = bar; data[foo2] = bar2; data[foo3] = bar3; 有没有办法在第一个foo元素之前注入一个元素,这样当for var i in data执行for var i in data ,新元素将在启动对象时添加的元素之前循环? 原因是,我正在向用户显示一些项目。 当用户通过javascript添加新项目时,我希望这个新项目显示在所有现有项目之上,但是当我添加新项目时,即 data[newItem] = newItem; 然后JSON对象如下所示: data[foo] = bar; data[foo2] = bar2; data[foo3] = bar3; data[newItem] = newItem; 而不是我想要的,这是: data[newItem] = newItem; data[foo] = bar; data[foo2] = bar2; data[foo3] = bar3; 有任何想法吗?
我正在编写一个应用程序,我需要从另一台服务器访问客户端的一些json数据。 由于跨域问题,我计划使用jsonp。 jQuery允许我使用$ .getJSON()方法执行此操作,但是,我无法判断方法是否失败(即服务器没有响应或其他什么)。 所以我尝试使用$ .ajax来获取JSON数据。 但它不起作用,我不知道该尝试什么。 这是一个显示我的问题的示例: TEST $(document).ready(function() { $(‘#button_detect’).click(function(){ var feedApiAjax = ‘http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=’; var feedApiGetJSON = ‘http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=’; var feedUrl = ‘http://www.engadget.com/rss.xml’; $.ajax({ url: feedApiAjax + feedUrl, datatype: ‘jsonp’, success: function(data) { console.log(‘$.ajax() success’); }, error: function(xhr, testStatus, error) { console.log(‘$.ajax() error’); } }); $.getJSON( feedApiGetJSON + feedUrl, function(data) { console.log(‘$.getJSON success’); }); […]
我在使用自动填充function在我的页面上工作时遇到了很多麻烦。 当我在搜索输入中输入2个字符(“OW”)时,我得到预加载器图像(见下文),但它永远不会消失,我从未得到自动完成弹出窗口。 查看Chrome中的控制台显示: Uncaught TypeError: Cannot use ‘in’ operator to search for ’62’ in [{“value”:103,”label”:”FLOWER”},{“value”:105,”label”:”YELLOW”}] 以下是要返回的实际字符串(通过在成功块中添加警报(数据)来确认): [{“kwrdID”:103,”kwrdKeyWord”:”FLOWER”},{“kwrdID”:105,”kwrdKeyWord”:”YELLOW”}] 这是自动完成的主要代码 $(“#searchInput”).autocomplete({ source: function (request, response) { $.ajax({ url: ‘@Url.Action(“GetKeywords”, “Home”)’, dataType: “json”, data: { SearchTerm: request.term }, success: function (data) { response($.map(data.keywords, function (item) { return { label: item.kwrdKeyWord, value: item.kwrdID } })); } }); }, minLength: […]