jQuery.ajax call fails inside Chrome extension

前端 未结 4 1629
时光说笑
时光说笑 2020-12-28 21:56

I\'m porting one of my Firefox extensions to Chrome, and I\'m running into a little problem with an AJAX query. The following code works fine in the FF extension, but fails

4条回答
  •  执念已碎
    2020-12-28 22:23

    I've solved part of the problem, actually most of it. First, as Brennan and I mentioned yesterday, I needed to set permissions in manifest.json.

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

    It's not ideal to give permissions to every domain, but since images can be hosted from any domain, it'll have to do, and I'll have to guard against XSS.

    The other problem is that Chrome indeed blocks anything in the content_scripts section from making AJAX calls, failing silently. However, there is no such restriction on the background_page, if you have one. That page can make any AJAX calls it wants, and Chrome has an API to allow your script to open a port and pass requests to that background page. Someone wrote a script called XHRProxy as a workaround, and I modified it to get the appropriate response header. It works!

    My only problem now is figuring out how to make the script wait for the result of the call to be set in the event, instead of just returning immediately.

提交回复
热议问题