Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Lokalny skrypt w połączeniu z AJAX?
Paplo
post 8.11.2016, 10:14:30
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 28.10.2015

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


Witam

posiadam aplikacje webową, i napotkałem duży problem bo muszę dorobić do niego moduł do drukarki fiskalnej, ale większość problemów rozwiałem albo przynajmniej mam pomysł na nie, ale do rzeczy.

Połączyłem drukarkę fiskalna z skryptem js i html'em za pomocą Activex.
I tutaj tutaj mam problem bo Activex działa tylko lokalnie(przynajmniej tak wyszło z moich testów ale nie jestem pewien, mogę się mylić), ok, to zrobiłem ten moduł lokalnie czyli css js i html "w pełni działający" moduł lokalnie na komputerze i wszystko ładnie smiga, ALE teraz potrzebuje wymiany danych z baza danych na serwerze, i tutaj myślałem ze mi pomoże AJAX ale cały czas dostaje błąd - status = 0 czyli Not connect. Verify Network. czyli co nie da się lokalnie korzystać z ajaxa?

script w html'u jest na razie trywialny do testów tylko:

  1. <script>
  2. ajax = function (ean13){
  3. $.ajax({
  4. type: "POST",
  5. url: "www.mojastrona.pl/sklep/ajax/ajax_szukaj_ean.php", // z -> 'htt ps://www.mojas....' tez było
  6. data : {
  7. ean13: ean13
  8. },
  9. dataType: "json",
  10. success: function(response){
  11. console.log(response);
  12. }
  13. });
  14. }
  15. </script>


i odpowiedz umieszczona na serwerze:

  1. <?php
  2.  
  3. echo json_encode(array( 'success' => '1', 'text' => 'oto twoj product...' ));
  4.  
  5. ?>


Ten post edytował Paplo 8.11.2016, 10:16:52
Go to the top of the page
+Quote Post
trueblue
post 8.11.2016, 10:20:09
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


1. Dodaj protokół do URL. Choć skoro to wywołanie lokalne (jak rozumiem w ramach tej samej domeny), to wystarczy ścieżka bezwzględna.
2. Sprawdź konsolę przeglądarki oraz zakładkę sieciową, aby sprawdzić jaka jest (jeśli jest) odpowiedź na żądanie.


--------------------
Go to the top of the page
+Quote Post
viking
post 8.11.2016, 10:36:58
Post #3





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Aby działało zdalnie serwer docelowy musi mieć zdefiniowaną politykę Access-Control-Allow-Origin. Poczytaj o CORS.


--------------------
Go to the top of the page
+Quote Post
Paplo
post 9.11.2016, 13:58:12
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 28.10.2015

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


dziękuje smile.gif wystarczyło dodać jedną linie do php na serwerze smile.gif dziękuje za podpowiedz.

Witam piszę ponownie w tej sprawie bo już nie mam pomysłu sad.gif i chyba zostałem zaszachowany

Potrzebuje odpalić skrypt lokalnie i to na IE, co zrodziło tyle problemow że już nie mam pomysłu
// Poprzedni temat zadziałał beż zarzutu na chrome

chrome:
- ajax działa lokalnie (wszędzie), ale nie działa ActiveX
IE:
- ajax działa jak jest na serwerze(nawet dwóch rożnych serwerach i domenach), ale NIE działa ActiveX
- ajax nie działa loklanie(czyli C:\Script\index.html), ale działa ActiveX

I co teraz mam zrobić żeby wszystko działało smile.gif ? proszę o jakaś małą podpowiedz.

Pomysły na razie to:
- poszukać wtyczki do chroma na ActiveX - znalazłem ale chrome mi cały czas wyłącza go bo nie jest ze sklepu chrome i z tego co wyczytałem to nie da się jej włączyć w takim przypadku.
- dodać do zaufanych jak napisano tutaj: http://stackoverflow.com/questions/2320531...rect=1&lq=1 - też nie pomogło



  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.  
  7. <meta name="robots" content="NOFOLLOW, NOINDEX">
  8.  
  9. <script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script>
  10.  
  11. <script>
  12. var contentType ="application/x-www-form-urlencoded; charset=utf-8";
  13.  
  14. if(window.XDomainRequest) // for IE8,IE9
  15. contentType = "text/plain";
  16.  
  17. ajax = function (ean){
  18. $.ajax({
  19. url:"http://199.77.156.43/ajax/ajax_shop.php",
  20. data: {
  21. ean: ean
  22. },
  23. type:"POST",
  24. dataType:"json",
  25. contentType:contentType,
  26. success:function(data)
  27. {
  28. alert("Data: "+JSON.stringify(data));
  29. },
  30. error:function(jqXHR,textStatus,errorThrown)
  31. {
  32. alert("You can not send Cross Domain AJAX requests: "+errorThrown); // -> na IE daje "No Transport"
  33. }
  34. });
  35. }
  36.  
  37. $(document).ready(function() {
  38. $(document).on('click', '#yes-btn', function(event) {
  39. event.preventDefault();
  40. /* Act on the event */
  41. ajax( $("#ean13").val() );
  42. });
  43. });
  44.  
  45. </script>
  46.  
  47. </head>
  48. <body...


  1. <?php
  2. header('Access-Control-Allow-Origin: *');
  3. header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
  4.  
  5. if(isset($HTTP_RAW_POST_DATA)) {
  6. parse_str($HTTP_RAW_POST_DATA,$arr);
  7. echo json_encode($arr);
  8. }
  9. else
  10. {
  11. echo json_encode($_POST);
  12. }
  13. ?>


Ten post edytował Paplo 9.11.2016, 14:05:28
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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 19:12