如何绕过跨域请求阻止的CORS请求在此脚本中失败?

时间:2018-08-18 00:39:06

标签: php ajax cross-origin-read-blocking

在我的本地计算机上,所有Ajax请求都可以正常工作,并且该应用程序可以完美运行。在主机上情况则不同。尝试在Ajax脚本下执行时,我得到了:

  

跨源请求被阻止:同源策略禁止阅读   https://googleads.g.doubleclick.net/pagead/id上的远程资源。   (原因:CORS请求未成功。)

我整天都在尝试修复此错误,但无济于事。我什至在每页的开头都添加了这个

  <?php ob_start(); 
       header('Content-Type: text/html; charset=utf-8');
       header("Access-Control-Allow-Origin: *");
       ?>

我了解了JSONP,并且想知道如何实施此解决方案?

这是Ajax的 short 版本

       $( ".submit-signup-form" ).click(function(e) {
       e.preventDefault();

       if(formvalues!==''){
       $("#sign-up-form-2").submit(

       $.ajax({
           type: "POST",
           url: 'queries/register.php',
           data: formvalues,
           success: function(customerarr){ //callback}
      })
      })

     });
}

在控制台中调试应用程序时,我尝试了console.log(formvalues),所有内容都可以正常打印了。表单确实获取了所有变量,因此我不了解如何使脚本在实时主机上工作。

1 个答案:

答案 0 :(得分:0)

您可以在ajax请求中使用它...

class C
{
    using Data = std::shared_ptr<std::array<std::string, 10>>;
    Data data;
    C(Data& data) : data(data) { }
};

class A
{
    static size_t const DataLength = 10;
    template <size_t N>
    A(std::array<std::string, N>& data)
    {
         static_assert(N <= DataLength);
         std::copy(data.begin(), data.end(), this->data.begin());
    }
};