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

Javascript chrome扩展上的$.getJSON无法正常工作,javascript,jquery,ajax,google-chrome,google-chrome-extension,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); }); 它在默默地

我正在创建一个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不是一个选项,因为该站点显然不需要支持它,所以请帮助我。我不知道我做错了什么


编辑:我看到问题了。当我尝试执行请求时,我被重定向到user/search(no?user),但失败。

完全可能是网站的搜索API没有将
内容类型
标题返回为
text/json
,这是
$.getJSON
正常运行所必需的


尝试简单地使用
$.get
并调用
JSON.parse
,对返回的数据进行解析。

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


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

您的脚本是否与您试图查询的脚本位于同一域中?否,但是,如果您指定了正确的权限,则不必使用chrome扩展。您是否通过查看开发人员工具下的“网络”查看了正在查询的页面返回的内容?请详细说明这两个请求返回的内容。一个失败的请求,仅是website.com/user/search,一个成功的请求出现在website.com/user/search?user=test,但是如果需要知道的话,它返回的内容类型是text/html。