我的ajax跨域请求被Chrome取消

My ajax cross-domain request getting cancelled by Chrome

本文关键字:Chrome 取消 请求 ajax 我的      更新时间:2023-09-26

我正在从我试图创建的Google Chrome扩展中制作这些ajax请求,但每次我的扩展都请求它被取消。我不知道为什么。

下面的代码段可以正常工作。

    function makeRequest(method, url){
         var xhr = new XMLHttpRequest();
         xhr.open("GET", "http://www.djjohal.com");
         xhr.send();
      }

      setTimeout(makeRequest, 10000)

但是当我把上面的代码改成这样,它就不起作用了

    var submit = document.querySelector('input[type=submit]')
    submit.addEventListener('click', callback)

    function makeRequest(method, url){
        var xhr = new XMLHttpRequest();
        xhr.open(method, url);
        xhr.send();
    }

    function callback(){
        makeRequest('GET', 'http://www.djjohal.com')
    }

我做错了什么?

Chrome扩展限制跨站点请求,除非该扩展具有正确的安全权限。

请参见:Chrome开发人员网站上的跨域XMLHttpRequest。

这是由于djjohal.com服务器上的设置造成的。

尝试问题中给出的代码片段,我在正常网页中从Chrome收到此消息:

XMLHttpRequest cannot load http://www.djjohal.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://example.com' is therefore not allowed access.

如何添加Access-Control-Allow-Origin头

如果你没有控制djjohal,你就没有做错任何事。