2011-07-23 21 views
9

tôi sử dụng chức năng jquery.ajax để gửi dữ liệu từ phần mở rộng của Google Chrome sử dụng dịch vụ web của tôi như mã bên dưới:Sử dụng jQuery.ajax trong một phần mở rộng của 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(); 
       } 
      } 
     }); 

nhưng tôi nhận được một lỗi:

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

làm cách nào tôi có thể giải quyết?

Trả lời

11

Bạn có thể có một cái nhìn tại trang này để đạt được những gì bạn muốn:

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

Nó chỉ là về quyền truy cập thiết lập ...

+0

Liệu câu trả lời của tôi là hữu ích cho bạn? Nếu vậy, hãy xem xét chấp nhận nó ... – ChristopheCVB

+0

điều này không làm việc cho tôi, bất kỳ ý tưởng tại sao? cuộc gọi ajax của tôi thành công, huy hiệu được cập nhật nhưng thông báo không hoạt động. –

0

của nó vì same origin policy thiết crossDomain true (ISE jquery phiên bản 1.5 hoặc cao hơn)

$.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

Tôi cố gắng như bạn đã nói, nhưng nó không giải quyết được vấn đề của tôi. –

+0

bạn gặp lỗi tương tự? bạn đã thử với 'type: 'GET''? – Rafay

+0

Cảm ơn câu trả lời của bạn, nhưng tôi muốn đăng dữ liệu lên dịch vụ của mình. –

0

tôi sử dụng ajax bản địa để giải quyết problem.you điều này có thể làm điều đó với các bước sau.

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

bạn cần phải thêm một phép bạn manifest.js nộp

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

Tôi gặp lỗi - URL không xác định hoặc không đúng định dạng – user6031759

+0

Đảm bảo bao gồm dấu gạch chéo, nếu không URL sẽ không hoạt động. – joe

Các vấn đề liên quan