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 - это не вариант, так как сайту явно не нужно его поддерживать, поэтому помогите мне, пожалуйста. Я не вижу, что я делаю неправильно.

EDIT: Я вижу проблему. Когда я пытаюсь выполнить запрос, я перенаправляюсь к пользователю/поиску (нет? Пользователь), который терпит неудачу.

+0

Является ли ваш скрипт в том же домене, что и тот, который вы пытаетесь запросить? – Lance

+0

Нет, но это не обязательно для расширения chrome, если вы укажете правильные разрешения. –

+0

Вы просматривали то, что возвращается с страницы, которую вы запрашиваете, глядя на «Сеть» в разделе «Инструменты разработчика»? – Lance

ответ

1

Сайт, к которому вы пытаетесь достичь, требует аутентификации, прежде чем разрешить поиск. Вы не получите ответ от вашего запроса ajax, потому что сервер ищет сеанс с учетными данными для входа, чтобы разрешить поиск. Поскольку ваш аякс не аутентифицирован и не имеет установленного сеанса, ваш запрос не «терпит неудачу», он просто получает ответ перенаправления сервера 302.

Вам нужно будет «войти» на страницу, которую вы пытаетесь запросить, чтобы установить сеанс и любые необходимые переменные, прежде чем вы сможете продолжить поиск.

0

Возможно, вполне возможно, что API поиска веб-сайта не возвращает заголовок Content-type как text/json, что необходимо для правильной работы функции $.getJSON.

Попробуйте использовать только $.get и позвоните JSON.parse по возвращенным данным.

+0

Но он возвращает тип содержимого как text/html, если это важно знать. –

Смежные вопросы