Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jquery] Chrome i Access-Control-Allow-Origin.
kebq
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

Ostrzeżenie: (0%)
-----


witam,

mój problem polega na tym iż nie do końca rozumiem dlaczego używając Chrome'a nie mogę na lokalnie załadować dokumentu do diva za pomoca ajaxa (jquery)
błąd którzy wyrzuca chrome to:
XMLHttpRequest cannot load xyz.html. Origin null is not allowed by Access-Control-Allow-Origin.

mój kod:
  1. <title>jQuery - Ajax dynamic content loading</title>
  2. <script type="text/javascript">
  3. function loadContent(id) {
  4. $("#contentArea").load("external"+id+".html");
  5. }
  6. </script>
  7. <script src="jquery-1.4.3.min.js" type="text/javascript"></script>
  8. </head>
  9. <body onLoad="loadContent(1);" id="page">
  10.  
  11. <a href="java script:loadContent(1);">Tab 1</a> |
  12. <a href="java script:loadContent(2);">Tab 2</a> |
  13.  
  14. <div id="contentArea" style="margin: 20px 0px 10px 10px; border: 1px solid #CCC;">
  15. &nbsp;
  16. </div>
  17.  
  18.  
  19. </body>
  20. </html>


błędu tego nie otrzymuje odpalając skrypt na serwerze.
Go to the top of the page
+Quote Post
paqu
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 16.09.2010

Ostrzeżenie: (0%)
-----


kolego powiedz czy używasz jakiegoś frame worka?

A tak wogóle kolego to :
1. najpierw załaduj bibliotekę jquery potem pisz skrypt gdzie jej używa
2. nie stosuj ewentow na tagach html tylko, uzywaj jquery np $(document).ready();
3. Popraw kod jak niżej i zobacz czy poleci

Cytat(kebq @ 4.11.2010, 00:40:05 ) *
  1. <title>jQuery - Ajax dynamic content loading</title>
  2. <script src="jquery-1.4.3.min.js" type="text/javascript"></script>
  3. <script type="text/javascript">
  4.  
  5. $(document).ready(function(){
  6. $("#contentArea").load("external"+$(this).attr('id')+".html");
  7. });
  8. </script>
  9.  
  10. </head>
  11. <body id="page">
  12.  
  13. <a href="java script:loadContent(1);">Tab 1</a> |
  14. <a href="java script:loadContent(2);">Tab 2</a> |
  15.  
  16. <div id="contentArea" style="margin: 20px 0px 10px 10px; border: 1px solid #CCC;">
  17. &nbsp;
  18. </div>
  19.  
  20.  
  21. </body>
  22. </html>
Go to the top of the page
+Quote Post
kebq
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

Ostrzeżenie: (0%)
-----


Nie jestem przekonany czy Twoje rozwiązanie może działać,
przede wszystkim funkcja LoadContent nie jest zdefiniowana (usunąłeś ją),
poza tym nie wiem skąd ma być wzięty na starcie id
trzeba by też raczej podczepić się pod click a nie ready
Chrom po załadowaniu strony wyrzuca:
Kod
Uncaught TypeError: Cannot read property 'id' of null

a po kliknięciu w link oczywiście
Kod
Uncaught ReferenceError: loadContent is not defined


BTW dlaczego nie powinienem podczepiać się pod tagi htmla? widziałem mnóstwo takich przykładów na stronie jquery

Ten post edytował kebq 4.01.2011, 21:30:50
Go to the top of the page
+Quote Post
sazian
post
Post #4





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


Cytat(kebq @ 4.01.2011, 21:20:20 ) *
BTW dlaczego nie powinienem podczepiać się pod tagi htmla? widziałem mnóstwo takich przykładów na stronie jquery

bo niema takiej potrzeby i jest to niewygodne


  1. <title>jQuery - Ajax dynamic content loading</title>
  2. <script src="jquery-1.4.3.min.js" type="text/javascript"></script>
  3. <script type="text/javascript">
  4.  
  5. $(document).ready(function(){
  6. $('a.tab').click(function(){
  7. $("#contentArea").load("external"+$(this).attr('id')+".html");
  8. return false;
  9. });
  10. });
  11. </script>
  12.  
  13. </head>
  14. <body id="page">
  15.  
  16. <a href="#" class="tab">Tab 1</a> |
  17. <a href="#" class="tab">Tab 2</a> |
  18.  
  19. <div id="contentArea" style="margin: 20px 0px 10px 10px; border: 1px solid #CCC;">
  20. &nbsp;
  21. </div>
  22.  
  23.  
  24. </body>
  25. </html>

Go to the top of the page
+Quote Post
kebq
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 2.12.2005

Ostrzeżenie: (0%)
-----


w kodzie jest błąd, tzn w linkach pominąłeś atrybut id (skrypt nie może przez to wczytać nazwy pliku)
jednak nawet poprawiając linie 18 i 19 na
Kod
<a href="#" class="tab" id="1">Tab 1</a> |
<a href="#" class="tab" id="2">Tab 2</a> |

i tak otrzymuje mój początkowy błąd:
Cytat
XMLHttpRequest cannot load external1.html. Origin null is not allowed by Access-Control-Allow-Origin.

tzn problem wciąż występuje pod najnowszym Chrome 8.0.55.224 a ja wciąż nie wiem jak to obejść
Go to the top of the page
+Quote Post
heniek87
post
Post #6





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 28.06.2011

Ostrzeżenie: (0%)
-----


Jesteście wręcz genialni poprawiliście wszystkie błędy ale jego problem dalej pozostał. Niszczycie w taki sposób każde forum. Ja bym za to banował u siebie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 02:51