我正在创建Chrome扩展程序,并希望能够从用户名获取个人资料照片。不幸的是,网站没有api,配置文件URL和配置文件名称之间没有相关性。我想我可以劫持搜索ajax并用它来实现我的目标。不幸的是,它似乎没有起作用。我已经添加了权限,但它没有在内容脚本中运行,但它仍然无效。
$.getJSON("http://www.website.com/user/search",{user:name},function(a){
alert(1);
alert(a.data);
});
它无声无息,因为没有任何东西在徘徊。然而,我无法弄清楚为什么。 我应该从通话中接收的json(手动浏览到站点)是: { “错误”:假的, “采取行动”:空, “一”:真正的 “数据”:143217} 不幸的是它不起作用。 JSONP不是一个选项,因为该网站显然不需要支持它,所以请帮助我。我不明白我做错了什么。
编辑:我看到了问题。当我尝试执行请求时,我将被重定向到用户/搜索(没有用户)失败。答案 0 :(得分:1)
您尝试访问的网站需要进行身份验证才能进行搜索。您将无法从您的ajax请求获得响应,因为服务器正在查找具有登录凭据的会话以允许搜索发生。由于您的ajax未经过身份验证,并且未建立会话,因此您的请求不会“失败”,只是获取服务器的302重定向响应。
在您可以继续进行用户搜索之前,您需要“登录”您要查询的页面,以便建立会话和任何必要的变量。
答案 1 :(得分:0)
网站的搜索API可能完全无法将Content-type
标头返回为text/json
,这是$.getJSON
正常运行所必需的。
尝试使用$.get
并在返回的数据上调用JSON.parse
。