Использование jQuery.ajax в расширении Google Chrome - PullRequest
10 голосов
/ 23 июля 2011

Я использую функцию jquery.ajax для публикации данных из расширения Google Chrome в моем веб-сервисе, как показано ниже:

$.ajax({
            type: "POST",
            url: serviceUrl,
            data: data,
            success: function(msg){
                if(typeof(Me.config.onSumitted) == "function"){
                    Me.config.onSumitted(msg);
                }
           },
           error: function(){
                if(typeof(Me.config.onError) == "function"){
                    Me.config.onError();
                }
           }
         });

но я получаю ошибку:

XMLHttpRequest cannot load http://todomain.com/Service.asp. Origin http://fromtabdomain.com is not allowed by Access-Control-Allow-Origin.

как я могу это решить?

Ответы [ 5 ]

13 голосов
/ 23 июля 2011

Вы можете взглянуть на эту страницу, чтобы достичь желаемого:

http://code.google.com/chrome/extensions/xhr.html

Речь идет о настройке разрешений ...

10 голосов
/ 28 января 2015

вам нужно добавить разрешение в файл manifest.js

"permissions": [
    "http://www.yourwebsite.com/"
  ],
3 голосов
/ 13 февраля 2014

Как @ChristopheCVB указал http://code.google.com/chrome/extensions/xhr.html говорит вам, что делать:

Пожалуйста, добавьте permissions раздел в ваш manifest.json:

{
  "name": "yourExtension",

  "permissions": [
    "http://fromtabdomain.com"
  ]
}
1 голос
/ 03 мая 2014

Я использую нативный ajax для решения этой проблемы. Вы можете сделать это с помощью следующих шагов.

ajax = function(options, callback) {
  var xhr;
  xhr = new XMLHttpRequest();
  xhr.open(options.type, options.url, options.async || true);
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
      return callback(xhr.responseText);
    }
  };
  return xhr.send();
};
0 голосов
/ 23 июля 2011

, потому что та же политика происхождения установить crossDomain в true (ise jquery версии 1.5 или выше)

$.ajax({
            type: "POST", //or GET
            url: serviceUrl,
            data: data,
            crossDomain:true,
            cache:false,
            async:false,
            success: function(msg){
                //do some thing
           },
           error: function(jxhr){
               alert(jxhr.responseText);
                //do some thing
           }
         });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...