当前位置: 首页 > 知识库问答 >
问题:

找不到AMP访问控制允许源原点标头

慕容玉堂
2023-03-14

我有一个amp list元素,它的src是一个搜索。包含产品信息的php文件。

在验证时,我认为tld没有AMP访问控制允许源代码源标题,尽管我已经设置了一个。以下是php文件

<?php
header('Content-Type: application/json');
// header('AMP-Access-Control-Allow-Source-Origin: http://localhost');

header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Origin: https://www-xt2-extenders-com.cdn.ampproject.org');
header('Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin');
header('AMP-Access-Control-Allow-Source-Origin: https://www.xt2-extenders.com');


// filter parameters
$filter = isset($_REQUEST["filter"])?$_REQUEST["filter"]:"";


$products = array(
          array(
            "name"=>"HXT²",
            "price"=>2050.00,
            "color"=>"blue",
            "description"=>"Super cool super power t-shirt",
            "image"=>"../img/hxt-set-500-1.png"
            ),
          array(
            "name"=>"DXT²",
            "price"=>1980.00,
            "color"=>"yellow",
            "description"=>"Super cool super power t-shirt",
            "image"=>"../img/dxt²-set-500-2.png"
            ),
          array(
            "name"=>"SXT²",
            "price"=>2050.00,
            "color"=>"green",
            "description"=>"Super cool super power t-shirt",
            "image"=>"../img/sxt²-set-500-2.png"
            ),
          array(
            "name"=>"DPXT²",
            "price"=>3350.00,
            "color"=>"red",
            "description"=>"Super cool super power t-shirt",
            "image"=>"../img/dpxt²-set-500.png"
            )
          )

// Filter by subcategory
if(!empty($filter) && !in_array($filter, array('null', 'none'))) {
$filtered = array();
foreach ($products as $product) {
if($product['color']==$filter) {
  $filtered[] = $product;
}
}
 $products = $filtered;
}

header("HTTP/1.0 200 Ok");

和html:

      <!-- amp-list to fetch and display search results -->
  <!-- with amp-bind, the search keywords, filter, and sort options are all bound to the amp-list src URL -->
  <!-- This means that whenever one of them changes, amp-list will update and fetch the new URL -->
  <amp-list credentials="include"
            width="auto" height="600" layout="fixed-height"
            src="/amp/templates/search.php?filter="
            [src]="'/amp/templates/search.php?filter='+(filter||'')">

      <!-- amp-mustache template to display returned results -->
      <template type="amp-mustache">
        <ul class="related-items">
          {{#results}}
            <li>
              <figure class="related-thumb">
                <amp-img src="{{image}}"
                         width="60" height="60" layout="responsive">
                </amp-img>
                <figcaption>
                  <span class="title">{{name}}</span>
                  <span class="price">€{{price}}</span>
                  <span class="description">{{description}}</span>
                </figcaption>
              </figure>
            </li>
          {{/results}}
        </ul>
        {{#empty}}
          <p>No products matched your search terms</p>
        {{/empty}}
      </template>
  </amp-list>

我做错了什么?我已经阅读了这里的其他问题,并试图修改我的代码,但没有成功。

共有1个答案

蓝鸿哲
2023-03-14

在我的情况下试试这个代码,它解决了一个问题

$domain_url = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]";
$http_origin = isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORIGIN'] ? $_SERVER['HTTP_ORIGIN'] : $domain_url;
header("Content-type: application/json");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: " .$http_origin);
header("AMP-Access-Control-Allow-Source-Origin: " . $domain_url);
header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin");

希望对你也有帮助

 类似资料:
  • 好吧,这几天来,我一直在用我的脑袋来对付它,在谷歌搜索了好几天之后(当我现在搜索任何与此相关的东西时,有很多紫色链接),我几乎被难住了。表单在我们的域和AMP域都有效,所以也许我应该忘掉它,顺其自然。同时,我希望它是正确的,希望有人能在这里帮助我。 我已经阅读了几次AMP CORS文档,对我来说一切都很好。 在提交表单时,我们所有的表单都返回以下错误。从视觉上看,URL的显示是相同的。我已经将它们

  • 如何解决以下错误; 加载资源失败:服务器响应状态为500(内部服务器错误)cdn。安普项目。org/v0。js:68响应必须包含AMP访问控制允许源代码源标题Yd@cdn。安普项目。org/v0。js:68 cdn。安普项目。org/v0。js:68表单提交失败:错误:响应必须包含AMP Access Control Allow Source Origin标头​​​ 报道 遵循CORS上AMP G

  • 问题内容: 我看到以下错误: 使用此代码: 是什么原因引起的,如何解决? 问题答案: 在当前域之外发出ajax请求时,Javascript是受限制的。 例1:您的域名为example.com,并且您想向test.com提出请求=>您不能。 例2:您的域名是example.com,并且您想向inner.example.com发送请求,但是您不能。 例3:您的域名为example.com:80,并且您

  • 响应必须包含AMP访问控制允许源站标题表单提交失败:错误:响应必须包含AMP访问控制允许源站标题 我的从 这是c代码 我需要一个代码来使用经典的asp

  • 我的跨源请求被阻止了: 同源策略不允许从http://localhost:8092/authenticate读取远程资源。(原因:CORS标头'Access-Control-Allow-Origin'丢失)。

  • 我有一个网站,有一个单独的静态文件子域。我发现我需要设置标题,以使某些AJAX功能正常工作,特别是字体。我希望能够从访问静态子域进行测试,以及从子域访问静态子域。简单的解决方案是。我的服务器使用nginx。 您可能不想在响应标题中使用通配符作为,主要原因是什么?