Javascript 如果服务器对JSONP请求的响应不是';t在函数中正确包装响应,是否有方法重写;“无效标签”;错误

Javascript 如果服务器对JSONP请求的响应不是';t在函数中正确包装响应,是否有方法重写;“无效标签”;错误,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,因此,我尝试使用$.JSON获取并访问一个辅助项目的url中的数据:。从访问中可以看出,它是一个有效的JSON对象 因此,我使用jQuery执行以下JSONP请求 $.getJSON('https://api.pinterest.com/v2/users/cssquirrel/?callback=?', function(data) { callback(data); });` 当我运行这个程序时,我会得到错误“invalid label”,因为尽管我得到的是一个包含所有JSON信息的响应,但

因此,我尝试使用$.JSON获取并访问一个辅助项目的url中的数据:。从访问中可以看出,它是一个有效的JSON对象

因此,我使用jQuery执行以下JSONP请求

$.getJSON('https://api.pinterest.com/v2/users/cssquirrel/?callback=?', function(data) { callback(data); });`
当我运行这个程序时,我会得到错误“invalid label”,因为尽管我得到的是一个包含所有JSON信息的响应,但它没有将其包装在回调函数中,这会导致所有操作都失败

以下是回应:

{"status": "success", "user": {"username": "cssquirrel", "website": "", "about": "", "twitter_link": "", "publish_timeline": false, "is_following": false, "facebook_link": "http://www.facebook.com/cssquirrel", "image_url": "http://media-cache.pinterest.com/avatars/cssquirrel_1332472797.jpg", "location": "", "full_name": "Kyle Weems", "stats": {"followers_count": 10, "likes_count": 13, "pins_count": 259, "following_count": 24, "boards_count": 2}, "id": "123778827166945150", "image_large_url": "http://media-cache.pinterest.com/avatars/cssquirrel_1332472797_o.jpg"}, "boards": [{"category": "home", "is_collaborator": false, "user_id": "187251434415197561", "description": "This board is specifically for things we want to buy or am going to buy for redecorating our apartment in the next year or so (one can hope).", "url": "/jnaepalm/my-apartment-redecoration/", "is_following": false, "thumbnails": ["/uploads/cover_187251365695749104_187251296976783278_8e1oaKi9_1333652274.jpg", "http://media-cache.pinterest.com/upload/187251296976877180_C8VMZpRi_t.jpg", "http://media-cache.pinterest.com/upload/187251296976832689_ripauAtd_t.jpg", "http://media-cache.pinterest.com/upload/187251296976832240_fUHOQFUL_t.jpg", "http://media-cache.pinterest.com/upload/89509111314068749_b8HECGS4_t.jpg", "http://media-cache.pinterest.com/upload/187251296976813631_mqrILJ7L_t.jpg"], "stats": {"followers_count": 53, "pins_count": 11}, "id": "187251365695749104", "name": "My Apartment Redecoration"}, {"category": "architecture", "is_collaborator": false, "user_id": "123778827166945150", "description": "", "url": "/cssquirrel/dawww/", "is_following": false, "thumbnails": ["http://media-cache.pinterest.com/upload/125960120798214086_Q7SKFTww_222.jpg", "http://media-cache.pinterest.com/upload/211950726183236720_7Kod2qbJ_t.jpg", "http://media-cache.pinterest.com/upload/125045327123930771_LuvhIu65_t.jpg", "http://media-cache.pinterest.com/upload/87186942756265435_zkDGofnk_t.jpg", "http://media-cache.pinterest.com/upload/226165212507107947_FmCa7hLT_t.jpg"], "stats": {"followers_count": 17, "pins_count": 20}, "id": "123778758447498751", "name": "Dawww"}, {"category": "food_drink", "is_collaborator": false, "user_id": "123778827166945150", "description": "", "url": "/cssquirrel/nom-nom-nomophilia/", "is_following": false, "thumbnails": ["http://media-cache.pinterest.com/upload/236931630366384673_cIr5IfF1_222.jpg", "http://media-cache.pinterest.com/upload/280419514268240404_2ysv68TW_t.jpg", "http://media-cache.pinterest.com/upload/192388215301900735_YjfHY9zf_t.jpg", "http://media-cache.pinterest.com/upload/157414949445677782_ETiqDlZ4_t.jpg", "http://media-cache.pinterest.com/upload/284712007662990043_kKnxN3jz_t.jpg"], "stats": {"followers_count": 20, "pins_count": 80}, "id": "123778758447497411", "name": "Nom-nom-nomophilia"}, {"category": "men_apparel", "is_collaborator": false, "user_id": "123778827166945150", "description": "", "url": "/cssquirrel/project-sexypants/", "is_following": false, "thumbnails": ["http://media-cache.pinterest.com/upload/252201647852822759_uwlKOI1e_222.jpg", "http://media-cache.pinterest.com/upload/262264378270304794_88rVBmtm_t.jpg", "http://media-cache.pinterest.com/upload/198439927301238104_ZOX7SIcE_t.jpg", "http://media-cache.pinterest.com/upload/90775748709356579_2Zdk8if8_t.jpg", "http://media-cache.pinterest.com/upload/245657354644409113_GrKBq62Q_t.jpg"], "stats": {"followers_count": 20, "pins_count": 33}, "id": "123778758447497410", "name": "Project Sexypants"}, {"category": "cars_motorcycles", "is_collaborator": false, "user_id": "123778827166945150", "description": "", "url": "/cssquirrel/cars-to-overcompensate-with/", "is_following": false, "thumbnails": ["http://media-cache.pinterest.com/upload/216946907019857635_qiGKPgTa_222.jpg", "http://media-cache.pinterest.com/upload/30258628716631205_PAfHj9Ds_t.jpg", "http://media-cache.pinterest.com/upload/285486063848979846_cZABTXYA_t.jpg", "http://media-cache.pinterest.com/upload/193936327673799615_3wdGZJ7U_t.jpg", "http://media-cache.pinterest.com/upload/253749760224841585_f5N7CY4h_t.jpg"], "stats": {"followers_count": 20, "pins_count": 44}, "id": "123778758447497409", "name": "Cars To Overcompensate With"}, {"category": "geek", "is_collaborator": false, "user_id": "123778827166945150", "description": "", "url": "/cssquirrel/geeeeeek/", "is_following": false, "thumbnails": ["http://media-cache.pinterest.com/upload/123778689728702748_OuOah7Ki_222.jpg", "http://media-cache.pinterest.com/upload/123778689728702742_2MXhVgEb_t.jpg", "http://media-cache.pinterest.com/upload/152418768608872302_FTHuHi9M_t.jpg", "http://media-cache.pinterest.com/upload/160792649165450534_EAB8aKAI_t.jpg", "http://media-cache.pinterest.com/upload/169307267210994707_D0Ht2JrH_t.jpg"], "stats": {"followers_count": 20, "pins_count": 48}, "id": "123778758447497408", "name": "Geeeeeek"}, {"category": "food_drink", "is_collaborator": false, "user_id": "123778827166945150", "description": "", "url": "/cssquirrel/brew/", "is_following": false, "thumbnails": ["http://media-cache.pinterest.com/upload/135389532518003791_9awFAkAM_222.jpg", "http://media-cache.pinterest.com/upload/87116574011433685_49ZFZZUy_t.jpg", "http://media-cache.pinterest.com/upload/44050902575271742_HOZYAXOW_t.jpg", "http://media-cache.pinterest.com/upload/219620919298640329_yQlav4EP_t.jpg", "http://media-cache.pinterest.com/upload/123778689728668385_W9OfOjAj_t.jpg"], "stats": {"followers_count": 20, "pins_count": 34}, "id": "123778758447497407", "name": "Brew"}]}

尽管出现“无效标签”错误,我是否有办法处理这个JSON对象?(不更改服务器端代码,我无权访问)。显然,我想要的数据正在被发送,只是缺少JSONP通常需要的函数包装器。

如果服务器只使用JSON响应,不需要JSONP请求,而您没有访问服务器的权限,那么就无法实现这一点。(如果你能让它正常工作,任何一个在正常操作中返回JSON的站点都会有一个很大的安全漏洞,因为这将允许跨站点数据窃取。)


因此,除非服务器想通过启用CORS或通过执行JSONP来实现这一点,否则您无法通过这种方式获取数据。

如果服务器仅使用JSON响应,并且不需要JSONP请求,而您无法访问服务器,则无法实现这一点。(如果你能让它正常工作,任何一个在正常操作中返回JSON的站点都会有一个很大的安全漏洞,因为这将允许跨站点数据窃取。)


因此,除非服务器想通过启用CORS或执行JSONP来实现这一点,否则您无法以这种方式获取数据。

我建议使用服务器端代理或YQLNo-luck与YQL配合使用。Robots.txt正在碍事。所以它要么是代理,要么什么都不是。我建议使用服务器端代理或YQLNo-luck搭配YQL。Robots.txt正在碍事。所以它是一个代理或者什么都不是。哦,呸。我怀疑这可能是答案,但我希望我忽略了一些显而易见的事情。不过,如果我的浏览器接收到的数据存在安全漏洞,那就太好笑了。在收到Javascript后,我可能无法用Javascript处理它,但无论如何它都在我的浏览器中。因此,它可以放在您的浏览器中的原因是,如果将数据提供给第三方站点,则会出现安全漏洞。所以,如果它在你的浏览器中,但不可用(这正是你的问题),那么从安全角度来看,它是可以的。我怀疑这可能是答案,但我希望我忽略了一些显而易见的事情。不过,如果我的浏览器接收到的数据存在安全漏洞,那就太好笑了。在收到Javascript后,我可能无法用Javascript处理它,但无论如何它都在我的浏览器中。因此,它可以放在您的浏览器中的原因是,如果将数据提供给第三方站点,则会出现安全漏洞。因此,如果它在您的浏览器中,但不可用(这正是您的问题),那么从安全角度来看,它是可以的。