jquery – $.getJSON无效

前端之家收集整理的这篇文章主要介绍了jquery – $.getJSON无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@我在jQuery中搜索相关主题.但我没有看到任何方法解决我的问题.
  1. $(document).ready(function(){
  2. $("#inputForm").submit(function(event){
  3. $(":text").each(function() {
  4. var inputText = $(this).val();
  5. var userList = [];
  6. var weblink = 'http://test.com';
  7.  
  8. // problem is from here.
  9. $.getJSON(weblink,function(data){
  10. alert(weblink); // this statement doesn't show up
  11. $.each(data,function(entryIndex,entry){
  12. userList.push(entry['from_user']);
  13. });
  14. });
  15. alert(userList);
  16. });
  17. });
  18. });

这里有四个问题:

>为什么第一个警报(‘weblink’)没有出现.
>为什么此代码无法从网站获取json数据
>此代码的目标是从json文件获取from_user标记并存储到userList数组中.
>变量在“$.each(data,entry){”语句中,该函数有两个输入参数,一个是entryIndex,另一个是entry,我很奇怪这两个参数是针对什么的?我该怎么办?使用这两个参数.

任何人都可以帮我解决这个问题.我在这里待了一天.
非常感谢你.

解决方法

那里有几个问题:

> getJSON执行ajax请求. Ajax请求受Same Origin Policy的约束.除非您的页面是从http://test.com(或其他一些注意事项)加载的,否则它将无效.你可能正在寻找JSON-P(jQuery也支持),前提是服务器支持它.
> getJSON与所有ajax请求一样,默认情况下是异步的,因此您的第二个警报(带有用户列表)将在请求完成之前发生.虽然你可以使ajax请求同步,但这是一个非常糟糕的主意(在请求期间锁定了大多数浏览器的UI).相反,只需在回调中收到用户列表后使用它,而不是尝试在调用getJSON的函数中使用它.

编辑:您在下面说过,您正在尝试使用Twitter搜索API.该API确实支持JSON-P,因此如果您使用JSON-P来执行请求,它应该可以正常工作.例如.:

  1. $(document).ready(function(){
  2. $("#inputForm").submit(function(event){
  3. $(":text").each(function() {
  4. var inputText = $(this).val();
  5. var userList = [];
  6. var weblink = 'http://search.twitter.com/search.json?q=&ands=google';
  7.  
  8. // problem is from here.
  9. $.ajax({
  10. url: weblink,dataType: "jsonp",// <== JSON-P request
  11. success: function(data){
  12. alert(weblink); // this statement doesn't show up
  13. $.each(data.result,entry){ // <=== Note,`data.results`,not just `data`
  14. userList.push(entry['from_user']); // <=== Or `entry.from_user` would also work (although `entry['from_user']` is just fine)
  15. });
  16. alert(userList); // <== Note I've moved this (see #2 above)
  17. }
  18. });
  19. });
  20. });
  21. });

…但是你肯定不想为表单中的每个文本字段执行此操作?

Here’s a live example但没有表格(只做一个请求,而不是每个字段的请求).

猜你在找的jQuery相关文章