I'm making chrome estension wich pulls data from my own server. it uses about 4 httpRequests at a time, but sometimes i get console error XMLHttpRequest cannot load http://apps.radionsm.lv/apps/system/index.php?request=now. Origin chrome-extension://egkddfmbidfobhchndockbhjancbpfkd is not allowed by Access-Control-Allow-Origin. for everyone sometimes no.

How to fix this?

EDIT: if i send header('Access-Control-Allow-Origin: *'); will this fix it?

Your trying to do cross origin resource sharing (CORS). The bad news is that without a server as a middle man there is no way to do this on a normal web page. The good news is that in a chrome extension you can request permission to access any url's you want. Just put something like this in your manifest.json file.

Allow connections to your site:

"permissions": [
"http://*.radionsm.lv/"
],

Allow connections to any site:

"permissions": [
"http://*/"
],

When the user installs your extension chrome will inform them of the permissions required in a dialogue box prior to the completion of the install.

Worth mentioning - I had to delete and re-install the extension in order for the permissions to be updated from the manifest file.
–
Geva TalOct 13 '14 at 16:35

1

I upvoted Geva Tal's comment here, and want to further emphasize that you really have to uninstall your extension and then reinstall it. Just reloading the extension from within Chrome doesn't suffice.
–
erikpriceFeb 16 at 20:14

Chrome Extensions have two "modes" when making cross-domain XHR requests:

1) If the domain is in the "permissions" section of the manifest.json file - The request doesn't have an "Origin" header, and it always succeeds.

2) If the domain is not in "permissions" - The request includes an "Origin" header with the value "chrome-extension://..." This indicates that the request is a CORS request, and the response must have a valid Access-Control-Allow-Origin header in order to succeed.