【问题标题】:magento crossdomain issue fething data using ajax from others domainsmagento跨域问题使用ajax从其他域获取数据
【发布时间】:2026-01-23 19:55:02
【问题描述】:

在 magento 中,我使用视频而不是产品图片,这是一个市场。前端有四种类型的用户 1.卖家 2. 企业 3.业务代理 4. 网站客户

业务代理 -> 业务代理将所有卖家产品提供给其他网站,如果通过其他网站购买,他将获得佣金,因此我向业务代理提供并嵌入代码,以便他们可以将其实施到其他网站但当我尝试从其他域点击 ajax 显示跨域错误。

Cross-Origin Request Blocked: 
The Same Origin Policy disallows reading the remote resource at http://shopahol.com/demo/test.php?atoken=c0Q5QUk1VUgreEk9. 
(Reason: CORS header 'Access-Control-Allow-Origin' missing). 

为了解决这个问题,我尝试将 Access-Control-Allow-Headers 添加到 index.php

header('Access-Control-Allow-Origin: *');

但问题没有解决同样的错误。然后我尝试将 crossdomain.xml 放在我的根文件夹中

<!--l version="1.0-->
<!--pan class="hiddenSpellError" pre=-->
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

同样的问题也失败了,谁能有任何解决方案,或者我做错了什么。

这是我在其他网站上显示视频的代码。 (简单的 html 或 php 文件)

 <!-- html starts -->  
        <div id="tevid" style="width:100%;">
            <video id="homevideo" width="100%" autoplay onended="run()"></video>
        <div class="bg-background-new">
        <a href="" class="product-name-new" id="product-name">Product Name</a>
        <div class="price-new" id="price"></div> 
        <a href="" id="button1" class="new-button">Buy Now</a>
        </div> 
        </div>
        <!-- javascript starts *Remove this script if you already included ajax jquery  -->  
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js" >  </script>
        <script>
          var video_count =0;
          var videoPlayer = document.getElementById("homevideo");
          var allproduct = [];

          function getvideos(){ 
                $( document ).ready(function() {
                $.ajax({
                        url: "http://shopahol.com/demo/test.php?atoken=c0Q5QUk1VUgreEk9",
                        type: "GET",
                        dataType: "json", 
                        success: function(data){ for(var i in data) { allproduct.push(data[i]);  } run(); },
                        error: function() { alert("Error During Process"); }    
                });
                 });
          }

          function run(){ 
            var nextVideo = allproduct[video_count].videourl;
            var price = allproduct[video_count].pric;
            var name = allproduct[video_count].name;
            var url = allproduct[video_count].url;
            videoPlayer.src = nextVideo;
            videoPlayer.play();
            video_count++;
            $("#price").html("$ "+price);
            $("#product-name").html(name);
            $("#product-name").attr("href", url)
            $("#button1").attr("href", url)
            if(allproduct.length == video_count){ video_count = 0; }
          }

         $( document ).ready(function() {
            getvideos() ;
         });

        </script>
        <!-- css starts -->  
        <style>
        a.new-button {
          background: red none repeat scroll 0 0;
          border: medium none;
          bottom: 0;
          color: #fff;
          cursor: pointer;
          float: right;
          font-weight: bold;
          margin-top: 10px;
          padding: 10px 20px; float: right;
        }
        .price-new {
          color: #000;
          display: block;
          float: right;
          line-height: 35px;
          padding: 10px;
        }
        a.product-name-new {
          color: #000;
          display: inline-block;
          float: right;
          line-height: 35px;
          margin: 10px 0;
          position: relative;
          right: 2px;
          text-decoration: none;
        }
        .bg-background-new {
          background: transparent none repeat scroll 0 0;
          bottom: 65px !important;
          display: block;
          position: relative;
          right: 0 !important;
          width: 99%;
        }
        </style>

在帮助中表示赞赏 提前致谢

【问题讨论】:

    标签: php ajax xml magento cross-domain


    【解决方案1】:

    我想通了,所以我在相同情况下发布其他帮助的答案 我改变了我的ajax函数

    function getvideos(){ 
                    $( document ).ready(function() {
                    $.ajax({
                            url: "http://shopahol.com/demo/test.php?atoken=WkFBU2F6bFdCNFU9",
                            type: "GET",
                            crossDomain: true,
                            dataType: "jsonp",
                            jsonpCallback: 'giveBacktome',                          
                            error: function() { console.log("Error During Process"); }  
                    });
                     });
              }
    

    有效

    【讨论】: