chrome扩展名上的$ .getJSON无法正常工作

时间:2012-06-27 18:55:35

标签: javascript jquery ajax google-chrome google-chrome-extension

我正在创建Chrome扩展程序,并希望能够从用户名获取个人资料照片。不幸的是,网站没有api,配置文件URL和配置文件名称之间没有相关性。我想我可以劫持搜索ajax并用它来实现我的目标。不幸的是,它似乎没有起作用。我已经添加了权限,但它没有在内容脚本中运行,但它仍然无效。

$.getJSON("http://www.website.com/user/search",{user:name},function(a){
    alert(1);
    alert(a.data);
});

它无声无息,因为没有任何东西在徘徊。然而,我无法弄清楚为什么。 我应该从通话中接收的json(手动浏览到站点)是: { “错误”:假​​的, “采取行动”:空, “一”:真正的 “数据”:143217} 不幸的是它不起作用。 JSONP不是一个选项,因为该网站显然不需要支持它,所以请帮助我。我不明白我做错了什么。

编辑:我看到了问题。当我尝试执行请求时,我将被重定向到用户/搜索(没有用户)失败。

2 个答案:

答案 0 :(得分:1)

您尝试访问的网站需要进行身份验证才能进行搜索。您将无法从您的ajax请求获得响应,因为服务器正在查找具有登录凭据的会话以允许搜索发生。由于您的ajax未经过身份验证,并且未建立会话,因此您的请求不会“失败”,只是获取服务器的302重定向响应。

在您可以继续进行用户搜索之前,您需要“登录”您要查询的页面,以便建立会话和任何必要的变量。

答案 1 :(得分:0)

网站的搜索API可能完全无法将Content-type标头返回为text/json,这是$.getJSON正常运行所必需的。

尝试使用$.get并在返回的数据上调用JSON.parse