2012-03-24 22 views
1

Ich versuche, eine json RPC Ajax Anfrage zu senden, wenn die Seite geladen wird. Hier ist mein Javascript-Code:Json RPC jquery ajax Anruf

$(document).ready(function() { 
     var data="orderID=<?=$_POST['orderID'];?>&&lang=eng"; 
     $.ajax({ 
      url: "ajax/get_json_variables.php", 
      type: "POST",  
      data: data,  
      cache: false, 
      success: function (html) { 
       var splited=html.split("|"); 
       if(splited[0]=="0") 
       { 
        alert(splited[1]); 
       } 
       else 
       { 
        $.ajax({ 
         url: "https://91.199.226.106/ssljson.php", 
         type: "POST",  
         data: splited[1],  
         cache: false, 
         dataType:"json", 
         success: function (html) { 
          alert(html); 
         } 
        }); 
       } 
      } 
     }); 
    }); 

Mit dem ersten Ajax-Request ich JSON-String für die zweite Anfrage erhalten. Google Chrome gibt mir diesen Fehler:

XMLHttpRequest cannot load https://91.199.226.106/ssljson.php. Origin http://www.nver.am is not allowed by Access-Control-Allow-Origin. 

Ich verstehe nicht, was ist das Problem? Danke für die Hilfe.

+1

Sehr häufiger Fehler. Dies liegt daran, dass "91.199.226.106" und "www.nver.am" nicht identisch sind. Sie müssen ** gleich sein –

Antwort

2

Das Problem ist aufgrund der Same Domain Policy, und es kann zu schwierig sein herumarbeiten. Wenn Sie jQuery nicht verwenden, können Sie verschiedene Möglichkeiten nutzen, um die gewünschte Funktionalität zu erreichen, indem Sie Iframes und einen domänenübergreifenden Messaging-Helper wie EasyXDM oder dynamisch injizierte Tags verwenden, um Ihren JSON in einem speziellen Format abzurufen bekannt als JSONP.

Zum Glück verwenden Sie jQuery, so dass Sie http://api.jquery.com/jQuery.getJSON/ und JSONP verwenden können, um die gleiche Herkunft Richtlinie zu umgehen.