2010-04-20 1 views
2

В моем расширении хрома Я называю это:тупик на Jquery вызова внутри расширения хромированной

jsonPost = { 
    email:"[email protected]", 
    password:"demo", 
    content: $('#selected_text').val(), 
    notification_type: $('#notification_type').val(), 
    name:$('#notification_name').val() 
} 

$.post('http://localhost:3000/api/create.json', jsonPost, 
     function (data) { 
      console.log("type of data = " + typeof(data)); 
      console.log("data in function = " + data); 
      } 

Данные делает его на сервер. Но ответ утерян, в консоли --- тип данных = строка --- данные в функции =

Так что по какой-то причине я не получаю ответ обратно. Работает в браузере. Я даже пытался сделать против cnn.com и не получил ответа.

любые идеи?

благодаря

+2

Я считаю, что в этом контексте расширения распространяются на политику [того же происхождения] (http://en.wikipedia.org/wiki/Same_origin_policy), но я могу ошибаться. Простота тестирования, просто запустите хром с 'chrome.exe --disable-web-security' и посмотрите, работает ли он. –

ответ

1

Вы работаете на кросс-скриптов для сайтов? Если он работает на странице, расположенной на «localhost», но не в расширении, вероятно, вам нужно попросить разрешения Chrome получить доступ к вещам вне контекста безопасности по умолчанию для расширения. Посмотрите, помогает ли совет Google по requesting cross-origin permissions for an extension.

+0

это был не «json» (который я пробовал). Это был вопрос с разрешениями. В manifest.json я ввел это, и он сработал: «Разрешения»: [«tabs», «http: // * /»], На самом деле мне захотелось http: // localhost: 3000/там, но это похоже, не работает. Но это всего лишь мой тест, поэтому мне сейчас неинтересно ... –

1

вам нужно использовать JSON как тип пост, для краткого способа, использовать его как это

$.post(url, data, function(result) { 

}, 'json'); 
1

JQuery примет «лучшее предположение» в том, как интерпретировать данные, основанные на тип MIME и некоторые другие факторы, можно ли предположить, что это неправильно? Вы можете заставить его добавить fourth parameter к вашему вызову, указав тип данных   —, например, «json», «text», «html» ... Full list here в документах ajax.

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