如何使用JavaScript从URL获取JSON?

我在我的一个HTML文件中使用以下代码

var queryURL = encodeURI(yahooUrl + loc + appId); alert(queryURL); $.getJSON(queryURL, function(data){ alert('inside getJSON') alert(data); var items = []; $.each(data, function(key, value){ items.push('
  • ' + value + '
  • '); }); $('
      ', { 'class': 'my-new-list', html: items.join('') }).appendTo('body'); });`

    queryURL是一个大的查询,如果我从浏览器的地址栏加载,我得到一个包含JSON对象的文件。 但是下面的代码不起作用,整个JSON对象显示在Firefox的错误控制台上,错误“无效标签”。 我添加了&callback=? 在SO的几个答案中提到的查询字符串的末尾。

    任何人都可以建议我做错了吗?

    编辑 :for

    queryURL = “http://where.yahooapis.com/geocode?location=107,South%20Market,San%20Jose,San%20Fransico,Leusina,USA,&flags=J&appid=dj0yJmk9SUk0NkdORm9qM2FyJmQ9WVdrOU1tVnFUVzlVTm5NbWNHbzlORFl4TnpZME5UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWE1&callback=?”

    我收到以下错误:

     Error: invalid label Source File: http://where.yahooapis.com/geocode?location=107,South%20Market,San%20Jose,San%20Fransico,Leusina,USA,&flags=J&appid=dj0yJmk9SUk0NkdORm9qM2FyJmQ9WVdrOU1tVnFUVzlVTm5NbWNHbzlORFl4TnpZME5UWXkmcz1jb25zdW1lcnNlY3JldCZ4PWE1&callback=jQuery16404719878257064011_1316606312366&_=1316608283354 Line: 1, Column: 1 

    源代码:

     {"ResultSet":{"version":"1.0","Error":0,"ErrorMessage":"No error","Locale":"us_US","Quality":87,"Found":1,"Results":[{"quality":39,"latitude":"37.336849","longitude":"-121.847710","offsetlat":"37.338470","offsetlon":"-121.885788","radius":34800,"name":"","line1":"","line2":"San Jose, CA","line3":"","line4":"United States","house":"","street":"","xstreet":"","unittype":"","unit":"","postal":"","neighborhood":"","city":"San Jose","county":"Santa Clara County","state":"California","country":"United States","countrycode":"US","statecode":"CA","countycode":"","uzip":"","hash":"","woeid":2488042,"woetype":7}]}} 

    这可能是因为jQuery自动切换到使用JSONP(因为它是跨域请求),而雅虎显然不使用JSONP而是使用常规JSON 。 你有没有用dataType:"JSON"尝试过旧的$.ajax()

    使用$ .ajax

      $.ajax({ url: queryURL, dataType: "JSON", success: function(data){ alert('inside getJSON') alert(data); var items = []; $.each(data, function(key, value){ items.push('
  • ' + value + '
  • '); }); $('
      ', { 'class': 'my-new-list', html: items.join('') }).appendTo('body'); } });

      让我在这里非常好,因为我有一个可怕的日子: 工作的例子