2011-07-23 192 views
9

我用jquery.ajax函數從谷歌瀏覽器擴展數據發佈到我的web服務,如下代碼使用jQuery.ajax:在谷歌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. 

我該如何解決它?

回答

0

其因爲same origin policy設置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 
      } 
     }); 
+0

我按照你的說法嘗試,但它不能解決我的問題。 –

+0

你得到同樣的錯誤?你是否嘗試過'type:'GET''? – Rafay

+0

感謝您的回答,但我想將數據發佈到我的服務中。 –

0

我用原生Ajax來解決這個problem.you可以做到這一點下面的步驟。

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(); 
}; 
8

你需要一個許可添加到您manifest.js文件

"permissions": [ 
    "http://www.yourwebsite.com/" 
    ], 
+2

我收到一個錯誤 - URL未知或格式錯誤 – user6031759

+0

請確保包含斜線,否則將無法使用。 – joe