0

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

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

它默默地失败,因为没有发生任何事情。然而,我不知道为什么。我应该从调用中收到的 json(手动浏览到站点)是: {"error":false,"action":null,"one":true,"data":143217} 不幸的是,它不起作用。JSONP 不是一个选项,因为该站点显然不需要支持它,所以请帮助我。我看不出我做错了什么。

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

4

2 回答 2

1

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

您需要“登录”到您尝试查询的页面,以便建立会话和任何必要的变量,然后才能继续进行用户搜索。

于 2012-06-27T19:34:08.133 回答
0

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

尝试简单地使用$.get和调用JSON.parse返回的数据。

于 2012-06-27T18:59:10.443 回答